【特别提示】为了表达清楚,这个文章看起来复杂,但是实际升级过程你操作了后会觉得很简单,就是升级管理软件,封控节点,升级集群。
本文介绍将 xk8s 集群从 v1.22.3 版本升级到 v1.22.5 版本过程
本文所用集群 xk8s,控制节点 xk8s ,工作节点 xnode1, xnode2, xnode3
升级过程中,命令很多,不用害怕,很多都能用 Tab 键 Tab 出来
有的,则是系统给出的提示命令,复制、粘贴即可
主要步骤如下:
具体过程:
1. 通过客户机,连接到 xk8s 集群
kubectl config use-context xk8s
2. 查看当前 xk8s 集群版本为 v1.22.3
kubectl get nodes
3. 接入控制节点 xk8s
ssh xk8s
4. 将 v1.22.5 版本管理软件 rpm 包(kubeadm, kubectl, kubelet)准备好后,
在控制节点 xk8s,通过 sudo -i 命令获取 root 权限,使用 yum 命令升级以上 3 个管理软件
yum -y install kubeadm.x86_64 kubectl.x86_64 kubelet.x86_64
sudo -i
yum -y install kubeadm.x86_64 kubectl.x86_64 kubelet.x86_64
5. 完成管理软件升级,已升级到 v1.22.5 版本
6. 查看升级计划
kubeadm upgrade plan
7. 系统给出集群升级命令
8. 封控控制节点 xk8s
封控过程报错,提示使用 --ignore-daemonsets 选项
按提示,使用 --ignore-daemonsets 选项完成封控工作
kubectl drain xk8s
kubectl drain xk8s --ignore-daemonsets
9. 将所有 kubernetes 控制平面和节点组件升级到版本 1.22.5
本文,不升级工作节点,etcd,container 管理器,CNI 插件,DNS 服务或任何其他插件
etcd 有时候是和集群捆绑在一块的,所以使用 --etcd-upgrade=false 不升级 etcd。
其余,container 管理器,CNI 插件,DNS 服务或任何其他插件,是独立于集群软件的,不会随着集群升级而升级。
kubeadm upgrade apply v1.22.5 --etcd-upgrade=false
10. 显示升级成功
[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.22.5". Enjoy!
11. 重启服务,无报错,就是成功重启服务
systemctl daemon-reload
systemctl restart kubelet.service
12. 查看集群状态
kubectl get nodes
将 xk8s 集群升级到 v1.22.5 版本任务完成
13. 解封控制节点xk8s
kubectl uncordon xk8s
14. 再次查看节点状态,控制节点xk8s,已升级到 v1.22.5 ,已解除封控,已恢复正常。
以上,为本人将 k8s 集群从 v1.22.3 版本升级到 v1.22.5 版本过程。
以此记录,日后备用。