kubernetes v1.8.13 部署calico v3.13網路
阿新 • • 發佈:2020-12-31
技術標籤:kubernetes
在網上找了很多關於k8s部署calico網路的文章,很多都過時了或跟我自己的情況不一樣的,剛剛正好成功部署了calico v3.13.4版本,在這裡做一個筆記,方便自己和後來者少採坑。
本文使用的部署方法是使用calico.yaml直接安裝的方式。
一、準備工作
1、首先已經安裝完成k8s,並且master和worker已經組成叢集
2、準備calico需要的docker映象,我用的v3.13.4,必須準備一下4個映象,提前下載這四個映象並且放到自己的dockerhub裡面,或者你的環境可以連線外網,就到阿里雲等國內映象倉庫搜尋對應的映象,並修改calico裡的地址
rancher/calico-node v3.13.4 c91d49e6f044 7 months ago 261MB rancher/calico-pod2daemon-flexvol v3.13.4 c5dca18c0346 7 months ago 112MB rancher/calico-cni v3.13.4 9e1176a74e85 7 months ago 225MB rancher/calico-kube-controllers v3.13.4 f9f70a2e922f 7 months ago 56.6MB
二、下載和修改calico.yaml
如果是其他版本,請修改中間的版本號,注意只需要修改到第二個版本號即可
下面是下載的calico.yaml檔案需要修改的部分(別忘了還需要修改映象地址,這裡略了)
--- guide/secrets/ apiVersion: v1 kind: Secret type: Opaque metadata: name: calico-etcd-secrets namespace: kube-system data: # # 重點重點重點 # 用etcd的證書檔案,生成下面的etcd-key等,命令如: cat <file> | base64 -w 0 # etcd-key: null etcd-cert: null etcd-ca: null --- kind: ConfigMap apiVersion: v1 metadata: name: calico-config namespace: kube-system data: etcd_endpoints: "http://xxx.xxx.xxx.xxx:2379,http://xxx.xxx.xxx.xxx:2379,http://xxx.xxx.xxx.xxx:2379" #這裡是你的etcd叢集地址 #下面三個,刪掉#和前面的引號,如 etcd_ca: "/calico-secrets/etcd-ca" etcd_ca: "" # "/calico-secrets/etcd-ca" etcd_cert: "" # "/calico-secrets/etcd-cert" etcd_key: "" # "/calico-secrets/etcd-key" typha_service_name: "none" calico_backend: "bird" veth_mtu: "1440"
重點重點重點:
上面配置檔案中標註重點的地方,etcd-key,etcd-cert,etcd-ca(中間是橫槓)後面需要生成的證書內容是從哪來的呢?在我的環境中是從這個目錄下來的
/etc/kubernetes/pki/etcd
[[email protected] etcd]#
[[email protected] etcd]# pwd
/etc/kubernetes/pki/etcd
[[email protected] etcd]# ls
ca.crt ca.key healthcheck-client.crt healthcheck-client.key peer.crt peer.key server.crt server.key
[[email protected] etcd]#
其中:
etcd-key 對應的是 server.key
etcd-cert 對應的是 server.crt
etcd-ca 對應的是 ca.crt
在/etc/kubernetes/pki/etcd目錄下用一下命令分別生成證書的加密字串,然後填到配置檔案中對應的地方
catserver.key |base64 -w 0
cat server.crt |base64 -w 0
cat ca.crt | base64 -w 0
最後kubectl apply -f calico.yaml,然後檢查部署結果