摘要:
前面幾個篇幅,已經介紹master與node節點集群組件部署,由於K8S本身不支持網絡,當 node 全部啟動后,由於網絡組件(CNI)未安裝會顯示為 NotReady 狀態,需要借助第三方網絡才能進行創建Pod,下面將部署 Calico 網絡為K8S提供網絡支持,完成跨節點網絡通訊。
官方文檔 https://docs.projectcalico.org/v3.6/introduction
1)下載Calico yaml
[root@k8s-master01 ~]# mkdir /opt/k8s/calico [root@k8s-master01 ~]# cd /opt/k8s/calico/ [root@k8s-master01 calico]# wget http://docs.projectcalico.org/v3.6/getting-started/kubernetes/installation/hosted/calico.yaml
2)修改配置
默認calico配置清單文件與我們部署的集群並不兼容,所以我們需要修改以下字段信息
[root@k8s-master01 calico]# vim calico.yaml ## etcd 證書 base64 地址 (執行里面的命令生成的證書 base64 碼,填入里面) apiVersion: v1 kind: Secret type: Opaque metadata: name: calico-etcd-secrets namespace: kube-system data: etcd-key: (cat /etc/kubernetes/ssl/etcd-key.pem | base64 | tr -d '\n') etcd-cert: (cat /etc/kubernetes/ssl/etcd.pem | base64 | tr -d '\n') etcd-ca: (cat /etc/kubernetes/ssl/ca.pem | base64 | tr -d '\n') ## 如上()中只是生成base64碼的命令實際操作時需要去掉(),只需要填寫生成的編碼並用雙引號引起來即可 ## ConfigMap ### 修改etcd地址 etcd_endpoints: "https://10.10.0.18:2379,https://10.10.0.19:2379,https://10.10.0.20:2379" ### 修改etcd證書位置 etcd_ca: "/calico-secrets/etcd-ca" etcd_cert: "/calico-secrets/etcd-cert" etcd_key: "/calico-secrets/etcd-key" ## 修改pod 分配的IP段(不能與node、service等地址同一網段) - name: CALICO_IPV4POOL_CIDR value: "10.254.64.0/18"
3)應用
[root@k8s-master01 calico]# kubectl apply -f calico.yaml
4)查看
[root@k8s-master01 ~]# kubectl get po -n kube-system -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES calico-kube-controllers-75569d87d7-lxmgq 1/1 Running 0 70s 10.10.0.22 k8s-node02 <none> <none> calico-node-lhmt8 1/1 Running 0 70s 10.10.0.22 k8s-node02 <none> <none> calico-node-nkmh2 1/1 Running 0 70s 10.10.0.21 k8s-node01 <none> <none>
5)驗證集群狀態
## 查看node是否為就緒狀態 [root@k8s-master01 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-node01 Ready <none> 19h v1.14.1 k8s-node02 Ready <none> 18h v1.14.1