本文參照http://blog.csdn.net/yang7551735/article/details/51172179假褪,根據(jù)自己試驗(yàn)環(huán)境的操作呻右,過程記錄如下傲隶。
集群規(guī)劃
etcd:192.168.212.101
master:192.168.212.101
nodes:192.168.212.102,192.168.212.103,192.168.212.104
組件安裝
master
? ? ? 安裝etcd,kubernetes-master,docker組件
? ? ? ?# yum install etcd kubernetes-master docker -y
? ? ? 修改etcd的配置參數(shù)
? ? ? # vi /etc/etcd/etcd.conf將以下幾行進(jìn)行修改英上,完成后保存退出。配置文件的內(nèi)容被應(yīng)用于/usr/lib/systemd/system/etcd.service文件坯汤,如果需要更多配置虐唠,同步更新/usr/lib/systemd/system/etcd.service
? ? ? 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.212.101:2379"
? ? ?保存好后繼續(xù)執(zhí)行以下命令(設(shè)置自動(dòng)啟動(dòng)服務(wù),啟動(dòng)服務(wù))
? ? ?systemctl enable etcd
? ? ?systemctl start etcd
? ? 修改kubernetes server的參數(shù)
? ? # vi /etc/kubernetes/apiserver將以下幾行進(jìn)行修改惰聂,完成后保存退出疆偿。參數(shù)文件被/usr/lib/systemd/system/kube-apiserver.service引用。
? ? KUBE_API_ADDRESS="--address=0.0.0.0"
? ? KUBE_ETCD_SERVERS="--etcd_servers=http://192.168.212.101:2379"
? ? KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=192.168.0.0/16"
? ?192.168.0.0/16為虛擬機(jī)集群地址搓幌,根據(jù)實(shí)際修改
? ?設(shè)置/etc/kubernetes/controller-manager文件里的參數(shù)
? ?參數(shù)文件會(huì)被/usr/lib/systemd/system/kube-controller-manager.service引用
? ??KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"
? ? 設(shè)置 /etc/kubernetes/config 文件里的參數(shù)
? ? 參數(shù)文件會(huì)被scheduler杆故、manager等引用
? ? KUBE_MASTER="--master=http://192.168.212.101:8080"
? ? 到這里為止我們etcd和kubernetes的服務(wù)端設(shè)置就結(jié)束了,接著我們要啟動(dòng)kubernetes server服務(wù)執(zhí)行下面的命令
? ?啟動(dòng)kubernetes server
? ? systemctl enable kube-apiserver kube-scheduler kube-controller-manager
? ? systemctl start kube-apiserver kube-scheduler kube-controller-manager
? ? 驗(yàn)證服務(wù)已啟動(dòng) ? ?
? ? systemctl list-units --type=service|grep kube-apiserver
? ? 應(yīng)該輸出:kube-apiserver.service? ? ? ? ? ? loaded active running Kubernetes API Server
? ? 配置docker虛擬機(jī)網(wǎng)段
? ? etcdctl set /coreos.com/network/config '{ "Network" : "10.1.0.0/16" }'
nodes
? ? 安裝kubernetes-nodes以及docker還有flanneld組件
? ? ?#yum install kubernetes-node flannel docker -y
? ? ?配置docker服務(wù)
? ? ? systemctl enable docker
? ? ? systemctl start docker
? ? ?配置flanneld服務(wù)
? ? ? 修改/usr/lib/systemd/system/flanneld.service溉愁,其中定義的變量由/etc/sysconfig/flanneld文件聲明:
? ? ? ExecStart=/usr/bin/flanneld-start -etcd-endpoints=${FLANNEL_ETCD} -etcd-prefix=${FLANNEL_ETCD_KEY} $FLANNEL_OPTIONS
? ? ? 修改/etc/sysconfig/flanneld文件配置如下:
? ? ? FLANNEL_ETCD="http://192.168.212.101:2379"
? ? ? FLANNEL_ETCD_KEY="/coreos.com/network"
? ? ? 然后啟動(dòng)flanneld服務(wù)
? ? ? systemctl enable flanneld.service
? ? ? systemctl restart flanneld.service
? ? ? systemctl restart docker
? ? ?修改docker網(wǎng)絡(luò)
? ? ? 因?yàn)閐ocker需要使用flanneld的網(wǎng)絡(luò)处铛,因此需要修改docker的service文件:
? ? ? 修改/usr/lib/systemd/system/docker.service文件,在執(zhí)行前增加配置文件 ? ? ? ? ? ? ? ? ? ? ? ? ?EnvironmentFile=-/etc/sysconfig/flanneld
? ? ?EnvironmentFile=-/run/flannel/subnet.env
? ? ?執(zhí)行命令增加參數(shù) --bip=${FLANNEL_SUBNET}
? ? ?重啟docker
? ? ?systemctl daemon-reload
? ? ?systemctl restart docker
? ? ?網(wǎng)絡(luò)配置檢查
? ? ? 執(zhí)行ip a檢查當(dāng)前的網(wǎng)絡(luò)的準(zhǔn)備情況
? ? 如果看到到flannel0與docker0的網(wǎng)段相同饲趋,則網(wǎng)絡(luò)配置成功。? ?
? ? kubernetes node配置
? ? ? 修改/etc/kubernetes/config
? ? ? KUBE_MASTER="--master=http://192.168.212.101:8080"
? ? ? 修改/etc/kubernetes/kubelet文件
? ? ? KUBELET_HOSTNAME="--hostname-override=192.168.211.102"
? ? ? KUBELET_API_SERVER="--api-servers=http://192.168.212.101:8080"
? ? 啟動(dòng)kubernets node服務(wù)
? ? ?systemctl enable kubelet kube-proxy
? ? ?systemctl start kubelet kube-proxy
? ? ?驗(yàn)證服務(wù)已啟動(dòng)
? ? ? ?systemctl list-units --type=service|grep kubelet
? ? ? 應(yīng)該輸出:kubelet.service? ? ? ? ? ? ? ? ? ? loaded active running Kubernetes Kubelet Server
完成好上述設(shè)置后我們?cè)趉ubernetes server節(jié)點(diǎn)也就是我們實(shí)驗(yàn)中的host 192.168.212.101中執(zhí)行kubectl get nodes可以看到如下節(jié)點(diǎn):
tips:所有node會(huì)把自身的信息注冊(cè)在etcd數(shù)據(jù)庫(kù)撤蟆。在etcd服務(wù)器上奕塑,通過etcdctl ls /registry/minions可以查看所有已經(jīng)注冊(cè)的node,如: