部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)
上節(jié)我們通過 kubeadm 在 k8s-master 上部署了 Kubernetes,本節(jié)安裝 Pod 網(wǎng)絡(luò)并添加 k8s-node1 和 k8s-node2,完成集群部署。
安裝 Pod 網(wǎng)絡(luò)
要讓 Kubernetes Cluster 能夠工作,必須安裝 Pod 網(wǎng)絡(luò),否則 Pod 之間無法通信。
Kubernetes 支持多種網(wǎng)絡(luò)方案,這里我們先使用 flannel,后面還會(huì)討論 Canal。
執(zhí)行如下命令部署 flannel:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml添加 k8s-node1 和 k8s-node2
在 k8s-node1 和 k8s-node2 上分別執(zhí)行如下命令,將其注冊(cè)到 Cluster 中:
kubeadm join --token d38a01.13653e584ccc1980 192.168.56.105:6443這里的?--token?來自前面?kubeadm init?輸出的第 ⑨ 步提示,如果當(dāng)時(shí)沒有記錄下來可以通過?kubeadm token list?查看。
kubeadm join?執(zhí)行如下:
根據(jù)提示,我們可以通過?kubectl get nodes?查看節(jié)點(diǎn)的狀態(tài)。
目前所有節(jié)點(diǎn)都是?NotReady,這是因?yàn)槊總€(gè)節(jié)點(diǎn)都需要啟動(dòng)若干組件,這些組件都是在 Pod 中運(yùn)行,需要首先從 google 下載鏡像,我們可以通過如下命令查看 Pod 的狀態(tài):
kubectl get pod --all-namespacesPending、ContainerCreating、ImagePullBackOff?都表明 Pod 沒有就緒,Running?才是就緒狀態(tài)。我們可以通過?kubectl describe pod <Pod Name>?查看 Pod 具體情況,比如:
kubectl describe pod kube-flannel-ds-v0p3x --namespace=kube-system為了節(jié)省篇幅,這里只截取命令輸出的最后部分,可以看到在下載 image 時(shí)失敗,如果網(wǎng)絡(luò)質(zhì)量不好,這種情況是很常見的。我們可以耐心等待,因?yàn)?Kubernetes 會(huì)重試,我們也可以自己手工執(zhí)行?docker pull?去下載這個(gè)鏡像。
等待一段時(shí)間,image 都成功下載后,所有 Pod 會(huì)處于?Running?狀態(tài)。
這時(shí),所有的節(jié)點(diǎn)都已經(jīng)?Ready,Kubernetes Cluster 創(chuàng)建成功,一切準(zhǔn)備就緒。
小結(jié)
本章通過 kubeadm 部署了三節(jié)點(diǎn)的 Kubernetes 集群,后面章節(jié)我們都將在這個(gè)實(shí)驗(yàn)環(huán)境中學(xué)習(xí) Kubernetes 的各項(xiàng)技術(shù)。
書籍:
1.《每天5分鐘玩轉(zhuǎn)Docker容器技術(shù)》
https://item.jd.com/16936307278.html
2.《每天5分鐘玩轉(zhuǎn)OpenStack》
https://item.jd.com/12086376.html
轉(zhuǎn)載于:https://www.cnblogs.com/CloudMan6/p/8282367.html
總結(jié)
以上是生活随笔為你收集整理的部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx介绍(三) - 虚拟主机
- 下一篇: python3----运算符