如何升级Ubuntu上的Kubernetes
如何在Ubuntu上升级Kubernetes
升级Ubuntu上的Kubernetes集群需遵循备份先行、版本检查、工具更新、控制平面升级、工作节点升级、状态验证的流程,确保集群稳定性与兼容性。
1. 升级前准备
1.1 备份集群数据
升级前必须备份etcd数据(集群核心状态存储),防止数据丢失。使用以下命令创建etcd快照:
ETCDCTL_API=3 etcdctl snapshot save /path/to/backup/snapshot.db \
--endpoints https://<
etcd-endpoint>
:2379 \
--cert /etc/kubernetes/pki/etcd/server.crt \
--key /etc/kubernetes/pki/etcd/server.key \
--cacert /etc/kubernetes/pki/etcd/ca.crt
替换<
etcd-endpoint>
为etcd服务地址(单节点集群可直接用localhost
)。
1.2 检查版本兼容性
- 获取当前集群版本:
kubectl version --short
- 查阅Kubernetes官方文档的版本升级路径(如1.27→1.28),确认目标版本与当前版本的兼容性(如控制平面组件版本需≥工作节点版本)。
2. 更新kubeadm工具
kubeadm是升级集群的核心工具,需先将其升级到目标版本:
sudo apt-get update
sudo apt-get install -y kubeadm=<
target-version>
-00 # 替换<
target-version>
为目标版本(如1.28.0)
升级后验证kubeadm版本:
kubeadm version
3. 升级控制平面节点
控制平面节点(Master)升级需依次执行计划检查、应用升级、配置更新:
3.1 执行升级计划
使用kubeadm upgrade plan
检查可升级版本及依赖项(如容器运行时、CNI插件):
sudo kubeadm upgrade plan
输出会显示当前版本、推荐升级版本及是否需要更新kubelet/kubectl。
3.2 应用升级
根据计划结果,执行升级命令(替换<
target-version>
为目标版本):
sudo kubeadm upgrade apply <
target-version>
升级过程中,kubeadm会自动处理控制平面组件(kube-apiserver、kube-controller-manager、kube-scheduler)的二进制文件更新。
3.3 更新节点配置
升级完成后,更新节点配置以适配新版本:
sudo kubeadm upgrade node config --kubelet-version $(kubelet --version | cut -d ' ' -f 2)
sudo systemctl restart kubelet # 重启kubelet使配置生效
4. 升级工作节点
工作节点(Worker)需逐个升级,避免集群服务中断:
4.1 升级kubelet与kubectl
在工作节点上,升级kubelet和kubectl到目标版本:
sudo apt-get update
sudo apt-get install -y kubelet=<
target-version>
-00 kubectl=<
target-version>
-00
sudo apt-get autoremove &
&
sudo apt-get clean # 清理旧版本包
4.2 升级节点角色
在工作节点上执行kubeadm upgrade node
,将节点升级到目标版本:
sudo kubeadm upgrade node
升级完成后,重启kubelet服务:
sudo systemctl restart kubelet
5. 验证集群状态
升级完成后,检查集群状态确保所有组件正常:
kubectl get nodes # 确认所有节点状态为"Ready"
kubectl get pods --all-namespaces # 确认所有Pod状态为"Running"
若节点状态未及时更新,可等待几分钟或手动删除节点(kubectl delete node <
node-name>
)后重新加入集群。
注意事项
- 版本兼容性:严格遵循Kubernetes官方版本支持表(如Kubernetes 1.28需Ubuntu 22.04+、containerd 1.6+)。
- 最小化停机时间:升级过程中会重启Pod,建议在业务低峰期操作,并提前通知相关人员。
- 回滚准备:若升级失败,可使用
kubeadm upgrade apply --force
回滚到上一版本,或通过etcd快照恢复数据。 - 测试环境验证:生产环境升级前,务必在测试环境完成全流程验证,避免未知问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何升级Ubuntu上的Kubernetes
本文地址: https://pptw.com/jishu/728480.html