kubernetes集群搭建實(shí)操

本文參照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ù)庫。在etcd服務(wù)器上,通過etcdctl ls /registry/minions可以查看所有已經(jīng)注冊(cè)的node,如:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容