上節咱們經過 kubeadm 在 k8s-master 上部署了 Kubernetes,本節安裝 Pod 網絡並添加 k8s-node1 和 k8s-node2,完成集羣部署。html
安裝 Pod 網絡node
要讓 Kubernetes Cluster 可以工做,必須安裝 Pod 網絡,不然 Pod 之間沒法通訊。git
Kubernetes 支持多種網絡方案,這裏咱們先使用 flannel,後面還會討論 Canal。github
執行以下命令部署 flannel:docker
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
在 k8s-node1 和 k8s-node2 上分別執行以下命令,將其註冊到 Cluster 中:網絡
kubeadm join --token d38a01.13653e584ccc1980 192.168.56.105:6443
這裏的 --token
來自前面 kubeadm init
輸出的第 ⑨ 步提示,若是當時沒有記錄下來能夠經過 kubeadm token list
查看。app
kubeadm join
執行以下:學習
根據提示,咱們能夠經過 kubectl get nodes
查看節點的狀態。ui
目前全部節點都是 NotReady
,這是由於每一個節點都須要啓動若干組件,這些組件都是在 Pod 中運行,須要首先從 google 下載鏡像,咱們能夠經過以下命令查看 Pod 的狀態:google
kubectl get pod --all-namespaces
Pending
、ContainerCreating
、ImagePullBackOff
都代表 Pod 沒有就緒,Running
纔是就緒狀態。咱們能夠經過 kubectl describe pod <Pod Name>
查看 Pod 具體狀況,好比:
kubectl describe pod kube-flannel-ds-v0p3x --namespace=kube-system
爲了節省篇幅,這裏只截取命令輸出的最後部分,能夠看到在下載 image 時失敗,若是網絡質量很差,這種狀況是很常見的。咱們能夠耐心等待,由於 Kubernetes 會重試,咱們也能夠本身手工執行 docker pull
去下載這個鏡像。
等待一段時間,image 都成功下載後,全部 Pod 會處於 Running
狀態。
這時,全部的節點都已經 Ready
,Kubernetes Cluster 建立成功,一切準備就緒。
本章經過 kubeadm 部署了三節點的 Kubernetes 集羣,後面章節咱們都將在這個實驗環境中學習 Kubernetes 的各項技術。
書籍:
1.《天天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html
2.《天天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html