如何更新centos上的k8s版本
如何在CentOS上更新Kubernetes(k8s)版本
在CentOS上更新Kubernetes版本需遵循备份先行、分步升级、严格验证的原则,以下是详细操作流程:
1. 升级前准备工作
1.1 备份关键数据
升级前务必备份集群配置与数据,避免操作失误导致数据丢失:
- 备份etcd数据(etcd是Kubernetes的核心存储组件):
etcdctl snapshot save /var/lib/etcd/backup/snapshot.db - 备份kubeconfig文件(用于访问集群的凭证):
cp /root/.kube/config /root/.kube/config.backup 
1.2 检查当前集群状态
确认集群节点与Pod运行正常,无未处理的异常:
kubectl get nodes  # 查看节点状态(应为Ready)
kubectl get pods -A  # 查看所有命名空间的Pod状态(应为Running)
1.3 检查版本兼容性
- 查看当前Kubernetes版本:
kubectl version --short - 查看可用的kubeadm版本(kubeadm是升级核心工具):
yum list --showduplicates kubeadm --disableexcludes=kubernetes - 参考Kubernetes官方文档确认版本偏差规则:Kubernetes不支持跨次版本升级(如1.23→1.25),必须逐次升级(如1.23→1.24→1.25)。
 
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>
    为旧版本号
注意事项
- 滚动升级:对于生产环境的大型集群,建议逐个升级Worker节点,避免同时升级多个节点导致服务中断。
 - 测试环境验证:生产环境升级前,务必在测试环境中模拟升级流程,确认兼容性与稳定性。
 - 监控告警:升级过程中开启监控告警(如Prometheus+Alertmanager),及时发现并处理异常(如节点NotReady、Pod重启)。
 
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何更新centos上的k8s版本
本文地址: https://pptw.com/jishu/741987.html
