K8S從入門到放棄系列-(11)kubernetes集群網絡Calico部署


摘要:
前面幾個篇幅,已經介紹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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM