Kubernetes集群实践(十五)如何升级K8s的worker节点
本文主要介绍使用kubeadm管理的集群如何升级worker节点。
关键词:k8s,worker
背景
当前本地测试集群kubernetes版本不一致,为了避免出现差错,因此需要将版本对齐。

主要工作流程如下:
- 升级主控制平面节点
- 升级其他控制平面节点
- 升级工作节点
注意:
在Kubernetes中,升级集群时,通常建议按照指定的版本升级路径进行,而跳过次版本号的升级是不被支持的。这意味着,如果你的集群当前是1.28.x版本,想要升级到1.29.x版本,你需要先升级到1.29.x的前一个次版本,然后再升级到1.29.x。
举个例子,假设你的集群当前是1.28.4版本,你想要升级到1.29.2版本。根据版本偏差策略,你需要按照以下步骤进行升级:
- 升级到1.29.0版本:首先,你需要使用适当的工具(例如kubeadm)将集群升级到1.29.0版本。这可能涉及到更新Kubernetes二进制文件、配置文件和相关组件。具体的升级步骤可以参考Kubernetes官方文档或相关升级指南。
- 升级到1.29.2版本:一旦你的集群已经成功升级到1.29.0版本,你可以继续将其升级到1.29.2版本。这个升级过程可能与前一个次版本的升级类似,通常涉及更新二进制文件、配置文件和组件。
操作步骤
升级第一个控制平面节点
1 | # debian/Ubuntu |
验证版本
1 | kubeadm version |
验证升级计划
1 | kubeadm upgrade plan |
kubeadm upgrade会自动的将TLS证书续约, 如果需要略过证书续约操作,可以使用标志
--certificate-renewal=false
选择要升级到的目标版本,运行合适的命令。
1 | kubeadm upgrade apply v1.29.x |

更新CNI驱动插件
升级其他控制平面节点
1 | kubeadm upgrade node |
升级kubectl和kubelet
腾空节点
1 | # 将 <node-to-drain> 替换为你要腾空的控制面节点名称 |
升级操作
1 | # debian/Ubuntu |
重启 kubelet
1 | sudo systemctl daemon-reload |
恢复调度
1 | # 将 <node-to-uncordon> 替换为你的节点名称 |
升级工作节点
升级kubeadm
1 | # debian/Ubuntu |
执行kubeadm upgrade
1 | kubeadm upgrade node |
腾空节点
1 | # 将 <node-to-drain> 替换为你要腾空的控制面节点名称 |
升级kubectl/kubelet
1 | # debian/Ubuntu |
重启 kubelet
1 | sudo systemctl daemon-reload |
恢复调度
1 | # 将 <node-to-uncordon> 替换为你的节点名称 |