centos

如何更新centos上的k8s版本

小樊
45
2025-11-03 21:56:16
栏目: 智能运维

如何在CentOS上更新Kubernetes(k8s)版本
在CentOS上更新Kubernetes版本需遵循备份先行、分步升级、严格验证的原则,以下是详细操作流程:

1. 升级前准备工作

1.1 备份关键数据

升级前务必备份集群配置与数据,避免操作失误导致数据丢失:

1.2 检查当前集群状态

确认集群节点与Pod运行正常,无未处理的异常:

kubectl get nodes  # 查看节点状态(应为Ready)
kubectl get pods -A  # 查看所有命名空间的Pod状态(应为Running)

1.3 检查版本兼容性

2. 升级Master节点

2.1 升级kubeadm工具

在Master节点上,使用yum更新kubeadm到目标版本:

sudo yum update -y kubeadm --disableexcludes=kubernetes

2.2 执行升级计划

通过kubeadm检查集群是否满足升级条件,并获取升级脚本:

sudo kubeadm upgrade plan v<new-version>  # 替换<new-version>为目标版本(如1.24.0)

该命令会输出升级前的检查项(如容器运行时版本、etcd版本)及升级步骤,确认无误后继续。

2.3 应用升级

执行升级命令,更新Master节点的控制平面组件(kube-apiserver、kube-controller-manager、kube-scheduler):

sudo kubeadm upgrade apply v<new-version>

升级过程中会提示确认操作,输入yes即可。升级完成后,kubeadm会自动更新Master节点的kubelet配置文件。

2.4 升级kubelet与kubectl

更新Master节点上的kubelet和kubectl工具:

sudo yum install -y kubelet-<new-version> kubectl-<new-version> --disableexcludes=kubernetes
sudo systemctl daemon-reload  # 重新加载systemd配置
sudo systemctl restart kubelet  # 重启kubelet服务

3. 升级Worker节点

3.1 升级kubelet与kubectl

在每个Worker节点上,执行与Master节点相同的命令升级kubelet和kubectl:

sudo yum install -y kubelet-<new-version> kubectl-<new-version> --disableexcludes=kubernetes
sudo systemctl daemon-reload
sudo systemctl restart kubelet

3.2 升级节点组件

在Master节点上,使用kubeadm将Worker节点升级到新版本:

sudo kubeadm upgrade node

该命令会自动同步Worker节点的控制平面组件版本。升级完成后,Worker节点会自动重启kubelet服务。

3.3 解除节点不可调度状态

升级后,Worker节点可能处于NotReady状态,需手动解除不可调度限制:

kubectl uncordon <node-name>  # 替换<node-name>为节点名称(通过kubectl get nodes查看)

4. 验证升级结果

4.1 检查节点状态

确认所有节点已恢复正常状态(Ready):

kubectl get nodes

4.2 检查Pod状态

确认所有Pod均在运行(Running):

kubectl get pods -A

4.3 检查组件版本

验证Master节点与Worker节点的Kubernetes版本一致:

kubectl version --short

5. 清理旧版本(可选)

若升级成功且运行稳定,可删除旧版本的Kubernetes组件以释放磁盘空间:

sudo yum remove -y kubeadm-<old-version> kubelet-<old-version> kubectl-<old-version>  # 替换<old-version>为旧版本号

注意事项

0
看了该问题的人还看了