centos

如何在CentOS上升级Kubernetes集群

小樊
55
2025-09-22 11:19:58
栏目: 智能运维

在CentOS上升级Kubernetes集群的详细步骤

1. 升级前准备

1.1 备份关键数据

升级前必须备份集群核心数据,确保故障时可快速恢复:

1.2 检查兼容性

1.3 更新系统及仓库

2. 升级Master节点

2.1 升级kubeadm

kubeadm是升级集群的核心工具,需先升级至目标版本:

sudo yum update -y kubeadm

2.2 检查升级计划

通过kubeadm upgrade plan命令查看可升级的版本及所需操作:

sudo kubeadm upgrade plan

输出会显示当前版本、可升级的目标版本及兼容性检查结果。

2.3 执行升级

使用kubeadm upgrade apply命令升级Master节点(替换<目标版本>,如v1.28.2):

sudo kubeadm upgrade apply v1.28.2

2.4 升级kubelet和kubectl

3. 升级Worker节点

3.1 标记节点为不可调度

避免升级过程中新Pod调度到该节点:

kubectl cordon <节点名称>  # 如 kubectl cordon k8s-node01

3.2 驱逐节点上的Pod

将节点上的Pod安全驱逐至其他节点(--ignore-daemonsets忽略DaemonSet管理的Pod,--force强制驱逐):

kubectl drain <节点名称> --ignore-daemonsets --force

3.3 升级kubelet和kubectl

操作与Master节点一致:

sudo yum update -y kubelet kubectl
sudo systemctl daemon-reload
sudo systemctl restart kubelet

3.4 升级节点

使用kubeadm upgrade node命令升级Worker节点(需指定Master节点的Kubeadm版本):

sudo kubeadm upgrade node

3.5 恢复节点可调度

升级完成后,允许节点重新接收Pod调度:

kubectl uncordon <节点名称>

4. 升级后验证

4.1 检查节点状态

确认所有节点状态为Ready

kubectl get nodes

4.2 检查Pod状态

确保所有Pod正常运行(无ErrorCrashLoopBackOff):

kubectl get pods --all-namespaces

4.3 检查组件日志

查看Kubernetes组件日志,排查潜在错误:

sudo journalctl -u kubelet -f  # 实时查看kubelet日志
sudo journalctl -u kube-apiserver -f  # 查看apiserver日志

5. 清理旧版本(可选)

若升级成功且无问题,可删除旧版本组件以释放空间:

sudo yum remove -y kubeadm-<旧版本> kubelet-<旧版本> kubectl-<旧版本>

注意事项

0
看了该问题的人还看了