升级路线1.23.17--->1.24.17--->1.25.14--->1.26.9-→1.27.6

pause 容器对应版本3.6--->3.7--->3.7--->3.8--->3.9

三台master都执行

yum install -y kubeadm-1.24.17 --disableexcludes=kubernetes

任一master执行验证集群能否升级

kubeadm upgrade plan

master1上执行
执行升级命令(这一步需要等待)

kubeadm upgrade apply v1.24.17

master2上执行

kubeadm upgrade node

master3上执行

kubeadm upgrade node

master1上执行

kubectl drain d0-dev-master001 --ignore-daemonsets
yum install -y kubelet-1.24.17 kubectl-1.24.17 --disableexcludes=kubernetes
echo 'KUBELET_KUBEADM_ARGS="--container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7"' >/var/lib/kubelet/kubeadm-flags.env
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon d0-dev-master001

master2上执行

kubectl drain d0-dev-master002 --ignore-daemonsets
yum install -y kubelet-1.24.17 kubectl-1.24.17 --disableexcludes=kubernetes
echo 'KUBELET_KUBEADM_ARGS="--container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7"' >/var/lib/kubelet/kubeadm-flags.env
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon d0-dev-master002

master3上执行

kubectl drain d0-dev-master003 --ignore-daemonsets
yum install -y kubelet-1.24.17 kubectl-1.24.17 --disableexcludes=kubernetes
echo 'KUBELET_KUBEADM_ARGS="--container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7"' >/var/lib/kubelet/kubeadm-flags.env
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon d0-dev-master003

其它node上可以同时执行

yum install -y kubeadm-1.24.17 --disableexcludes=kubernetes
kubeadm upgrade node

任意master执行驱逐命令(这个要保证有pod可以有资源运行)

kubectl drain d0-dev-node001 --ignore-daemonsets

node上执行

yum install -y kubelet-1.24.17 kubectl-1.24.17 --disableexcludes=kubernetes
echo 'KUBELET_KUBEADM_ARGS="--container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7"' >/var/lib/kubelet/kubeadm-flags.env
systemctl daemon-reload
systemctl restart kubelet

任意master执行恢复调度

kubectl uncordon d0-dev-node001

注意:如果nide上有运行ceph集群的osd节点的话需要将osd节点先out待数据平衡完成之后才能停止容器runtime