版本相容性
calico | kubernetes | 新增功能 |
v3.21 | 1.20、1.21、1.22 | calico 可以選擇non-privileged and non-root 運作 |
v3.20 | 1.19、1.20、1.21 | resources management 支援Golang API |
v3.19 | 1.19、1.20、1.21 | VPP data plane,kubectl 管理calico |
v3.18 | 1.18、1.19、1.20 | veth_mtu 可以自動設定,避免包過大導緻網絡不通 |
v3.17 | 1.17、1.18、1.19 |
下載下傳manifest
下載下傳檔案後,手動修改相關配置,至少也要修改 etcd_endpoints
# 1、網絡和網絡政策管理都是用Calico
# 預設下載下傳最新版本
curl https://docs.projectcalico.org/archive/v3.17/manifests/calico-etcd.yaml -O
# 2、網絡政策管理用Calico和網絡用flannel
curl https://docs.projectcalico.org/archive/v3.17/manifests/canal-etcd.yaml -O
我的修改内容
# Auto-detect the BGP IP address.
- name: IP
value: "autodetect"
- name: IP_AUTODETECTION_METHOD
value: "can-reach=www.baidu.com"
# Enable IPIP
- name: CALICO_IPV4POOL_IPIP
value: "CrossSubnet"
# Enable or Disable VXLAN on the default IP pool.
- name: CALICO_IPV4POOL_VXLAN
value: "Never"
- name: CALICO_IPV4POOL_CIDR
value: "10.96.0.0/12"
備份原來的cm、deploy
如果不放心,可以備份之前版本的相關yaml
kubectl get cm -n kube-system calico-config -oyaml > calico-config.yaml
kubectl get deploy -n kube-system calico-kube-controllers -oyaml > calico-kube-controllers.yaml
更新calico
# 會進行滾動更新
kubectl apply -f calico.yaml
# 持續關注更新狀态
watch kubectl get pods -n kube-system
确認calico pod 狀态
kubectl get pods -n kube-system|grep calico
calico-kube-controllers-58dc97fd86-f4pnl 1/1 Running 0 16h
calico-node-28mm2 1/1 Running 0 15h
calico-node-97wvk 1/1 Running 0 15h
calico-node-9g2t9 1/1 Running 0 15h
calico-node-czl6j 1/1 Running 0 16h
安裝calicoctl
有四種方式安裝,這裡以binary舉例
移除舊的calicoctl 執行個體,安裝新的calicoctl 并且配置後管理calico
下載下傳binary包,并配置環境變量
curl -O -L https://github.com/projectcalico/calicoctl/releases/download/v3.17.6/calicoctl
chmod +x calicoctl
配置calicoctl 連接配接 etcd
這裡etcd叢集沒有配置證書
使用配置檔案的方式連接配接
apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
datastoreType: "etcdv3"
etcdEndpoints: "http://etcd1:2379,http://etcd2:2379"
...
使用環境變量的方式連接配接
ETCD_ENDPOINTS=http://etcdip:2379 calicoctl get bgppeers
ETCD_ENDPOINTS=http://192.168.10.16:2379 calicoctl version
Client Version: v3.17.3
Git commit: 5eb50600
Cluster Version: v3.17.3
Cluster Type: k8s,bgp,kubeadm