升级 k8s 集群版本

【特别提示】为了表达清楚,这个文章看起来复杂,但是实际升级过程你操作了后会觉得很简单,就是升级管理软件,封控节点,升级集群。

本文介绍将 xk8s 集群从 v1.22.3 版本升级到 v1.22.5 版本过程

本文所用集群 xk8s,控制节点 xk8s ,工作节点 xnode1, xnode2, xnode3

升级过程中,命令很多,不用害怕,很多都能用 Tab 键 Tab 出来

有的,则是系统给出的提示命令,复制、粘贴即可

主要步骤如下:

  1. 查看当前 xk8s 集群版本
  2. 在控制节点 xk8s,升级管理软件 kubeadm, kubectl, kubelet
  3. 封控控制节点 xk8s
  4. 在控制节点使用 kubeadm 升级 xk8s 集群
  5. 解封控制节点 xk8s
  6. 查看更新后的 xk8s 集群版本

具体过程:

1. 通过客户机,连接到 xk8s 集群

kubectl config use-context xk8s

升级 k8s 集群版本_第1张图片

 2. 查看当前 xk8s 集群版本为 v1.22.3

kubectl get nodes

升级 k8s 集群版本_第2张图片

3. 接入控制节点 xk8s

ssh xk8s

升级 k8s 集群版本_第3张图片

 

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

升级 k8s 集群版本_第4张图片

 升级 k8s 集群版本_第5张图片

5. 完成管理软件升级,已升级到 v1.22.5 版本

升级 k8s 集群版本_第6张图片

 6. 查看升级计划

kubeadm upgrade plan

 升级 k8s 集群版本_第7张图片

 升级 k8s 集群版本_第8张图片

 7. 系统给出集群升级命令

升级 k8s 集群版本_第9张图片

8. 封控控制节点 xk8s

封控过程报错,提示使用 --ignore-daemonsets 选项

按提示,使用 --ignore-daemonsets 选项完成封控工作

kubectl drain xk8s
kubectl drain xk8s --ignore-daemonsets

升级 k8s 集群版本_第10张图片

 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

升级 k8s 集群版本_第11张图片

10. 显示升级成功

[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.22.5". Enjoy!

升级 k8s 集群版本_第12张图片

 11. 重启服务,无报错,就是成功重启服务

systemctl daemon-reload
systemctl restart kubelet.service

升级 k8s 集群版本_第13张图片

 12. 查看集群状态

kubectl get nodes

将 xk8s 集群升级到 v1.22.5 版本任务完成

升级 k8s 集群版本_第14张图片

 13. 解封控制节点xk8s

kubectl uncordon xk8s

 升级 k8s 集群版本_第15张图片

 14. 再次查看节点状态,控制节点xk8s,已升级到 v1.22.5 ,已解除封控,已恢复正常。

升级 k8s 集群版本_第16张图片

 以上,为本人将 k8s 集群从 v1.22.3 版本升级到 v1.22.5 版本过程。

以此记录,日后备用。

你可能感兴趣的:(kubernetes,java,linux)