CentOS 7.2 Kubernetes 1.03をインストール

4845 ワード

2015年9月1日現在、CentOSはKubernetesを公式ソースに追加しているため、現在はKubernetesのインストールが便利になっています.
各コンポーネントのバージョンは次のとおりです.
Kubernetes-1.03
docker-1.8.2
flannel-0.5.3
etcd-2.1.1
Kubernetes導入環境の役割は次のとおりです.
CentOS 7.2 64   ,3    :
master:192.168.32.15
minion1:192.168.32.16
minion2:192.168.32.17

1.前処理
各マシンはiptablesを無効にし、dockerのiptablesとの競合を回避します.
systemctl stop firewalld
systemctl disable firewalld
selinuxを無効にします.
vim /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
2つのminionsマシンにdockerをインストールします.
yum -y install docker
yum -y update
reboot
CentOSシステムは、devicemapperをストレージバックエンドとして使用し、初期インストールdockerはloopbackを使用し、docker起動エラーが発生し、update後に起動する必要があります.
2.masterノードのインストールと構成
etcdとkubernetes-masterのインストール:
yum -y install etcd kubernetes-master
etcdプロファイルを変更するには、次の手順に従います.
# egrep -v “^#” /etc/etcd/etcd.conf
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.32.15:2379"
kube-masterプロファイルの変更:
# egrep -v ‘^#’ /etc/kubernetes/apiserver | grep -v ‘^$’
KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd_servers=http://192.168.32.15:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
KUBE_API_ARGS=""
# egrep -v ‘^#’ /etc/kubernetes/controller-manager |grep -v ‘^$’
KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"
[root@localhost ~]# egrep -v ‘^#’ /etc/kubernetes/config | egrep -v ‘^$’
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow_privileged=false"
KUBE_MASTER="--master=http://192.168.32.15:8080"
サービスを開始:
systemctl enable etcd kube-apiserver kube-scheduler kube-controller-manager
systemctl start etcd kube-apiserver kube-scheduler kube-controller-manager

flannelネットワーク構成をetcdに定義します.この構成は、各minionsのflannelサービスにプッシュされます.
etcdctl mk /coreos.com/network/config '{"Network":"172.17.0.0/16"}'
3. minionノードのインストールと構成
yum -y install kubernetes-node flannel
kube-nodeとflannelプロファイルを変更します.
# egrep -v ‘^#’ /etc/kubernetes/config | grep -v ‘^$’
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow_privileged=false"
KUBE_MASTER="--master=http://192.168.32.15:8080"
# egrep -v ‘^#’ /etc/kubernetes/kubelet | grep -v ‘^$’
KUBELET_ADDRESS="--address=127.0.0.1"
KUBELET_HOSTNAME="--hostname_override=192.168.32.16"
KUBELET_API_SERVER="--api_servers=http://192.168.32.15:8080"
KUBELET_ARGS="--pod-infra-container-image=kubernetes/pause"
etcdサービスのflannelを構成し、プロファイル/etc/sysconfig/flanneldを変更します.
FLANNEL_ETCD="http://192.168.32.15:2379"
FLANNEL_ETCD_KEY="/coreos.com/network"
サービスを開始:
systemctl enable flanenld kubelet kube-proxy
systemctl restart flanneld docker
systemctl start kubelet kube-proxy
各minionsでは、docker 0とflannel 0の2つのNICが表示されます.この2つのNICのipは、異なるマシンipアドレスで異なります.
#minion1
4: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN qlen 500
    link/none 
    inet 172.17.98.0/16 scope global flannel0
       valid_lft forever preferred_lft forever
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:9a:01:ca:99 brd ff:ff:ff:ff:ff:ff
    inet 172.17.98.1/24 scope global docker0
       valid_lft forever preferred_lft forever

#minion2
4: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN qlen 500
    link/none 
    inet 172.17.67.0/16 scope global flannel0
       valid_lft forever preferred_lft forever
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:25:be:ba:64 brd ff:ff:ff:ff:ff:ff
    inet 172.17.67.1/24 scope global docker0
       valid_lft forever preferred_lft forever
4. ステータスの確認
マスターにログインし、minionsの状態を確認します.
[root@master ~]# kubectl get nodes
NAME            LABELS                                 STATUS
192.168.32.16   kubernetes.io/hostname=192.168.32.16   Ready
192.168.32.17   kubernetes.io/hostname=192.168.32.17   Ready
kubernetesのクラスタは構成が完了し、次はpodを行い、その後試験を継続します.