版本兼容性
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