版本要求
calico v3.17 兼容以下kubernetes
- 1.17
- 1.18
- 1.19
下载manifest
下载文件后,手动修改相关配置,至少也要修改
etcd_endpoints
# 1、网络和网络策略管理都是用Calico
# 默认下载最新版本
curl https://docs.projectcalico.org/manifests/calico.yaml -O
# 2、网络策略管理用Calico和网络用flannel
curl https://docs.projectcalico.org/manifests/canal.yaml -O
备份原来的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 实例,安装新的calicoctl 并且配置后管理calico
安装calicoctl
有四种方式安装,这里以binary举例
下载binary包,并配置环境变量
curl -O -L https://github.com/projectcalico/calicoctl/releases/download/v3.17.3/calicoctl
chmod +x calicoctl
配置calicoctl 连接 etcd
这里etcd集群没有配置证书
使用环境变量的方式连接
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
官方文档
calico 升级: https://docs.projectcalico.org/maintenance/kubernetes-upgrade#upgrading-an-installation-that-uses-an-etcd-datastore
calicoctl 安装:https://docs.projectcalico.org/getting-started/clis/calicoctl/install
calicoctl 配置: https://docs.projectcalico.org/getting-started/clis/calicoctl/configure/etcd
calicoctl 命令参数: https://docs.projectcalico.org/reference/calicoctl/get
精彩评论