centos k8s升级步骤是什么
CentOS环境下Kubernetes集群升级步骤
一、升级前准备
-
备份关键数据
升级前必须备份集群配置及数据,避免操作失误导致数据丢失:- 备份
/etc/kubernetes/
目录(包含kube-apiserver、kube-controller-manager等组件的配置文件); - 备份
/var/lib/etcd/
目录(etcd数据库存储集群状态的核心数据); - 使用
etcdctl
工具备份etcd数据(需指定证书路径):etcdctl snapshot save /data/etcd/etcd_bak.db \ --endpoints=https://127.0.0.1:2379 \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt \ --key=/etc/kubernetes/pki/etcd/server.key
- 备份
-
检查集群状态
确保集群所有节点及Pod运行正常:kubectl get nodes # 确认所有节点状态为"Ready" kubectl get pods -A # 检查所有命名空间的Pod是否处于"Running"状态
-
确认版本兼容性
Kubernetes升级需遵循顺序升级原则(不能跳过次版本,如1.y→1.y+1,禁止1.y→1.y+2)。升级前查阅官方文档,确认当前版本与目标版本的兼容性,以及第三方组件(如CNI插件、存储驱动)是否支持目标版本。 -
配置Kubernetes仓库
确保所有节点的kubernetes.repo
仓库指向最新版本(以CentOS 7为例):cat < < EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/ enabled=1 gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/repodata/repomd.xml.key EOF
二、升级Master节点
-
升级kubeadm
kubeadm是升级控制平面的核心工具,需先升级至目标版本:sudo yum update -y kubeadm --disableexcludes=kubernetes kubeadm version # 验证kubeadm版本是否为目标版本
-
检查升级计划
使用kubeadm upgrade plan
命令确认集群可升级的版本,并获取升级脚本:kubeadm upgrade plan
输出会显示当前版本、可升级的目标版本及需要升级的组件(如kube-apiserver、kube-controller-manager等)。
-
执行控制平面升级
根据kubeadm upgrade plan
的输出,执行升级命令(以升级到1.28.2为例):sudo kubeadm upgrade apply v1.28.2
升级过程中会自动下载并安装新版本的控制平面组件(kube-apiserver、kube-controller-manager、kube-scheduler等)。
-
升级Master节点组件
- 升级kubelet和kubectl:
sudo yum update -y kubelet kubectl --disableexcludes=kubernetes sudo systemctl daemon-reload sudo systemctl restart kubelet
- 解除Master节点保护(允许其接收Pod调度):
kubectl uncordon k8s-master # 替换为Master节点名称
- 升级kubelet和kubectl:
-
手动升级其他组件(可选)
若kubeadm upgrade plan
提示需要手动升级(如kube-proxy、CoreDNS),可参考官方文档执行相应命令(如kubectl apply -f https://github.com/kubernetes/kubernetes/releases/download/v1.28.2/coredns.yaml
)。
三、升级Worker节点
-
腾空节点
将Worker节点标记为不可调度,并驱逐所有Pod(避免升级过程中Pod中断):kubectl drain k8s-node1 --ignore-daemonsets # 替换为Worker节点名称
-
升级Worker节点组件
- 升级kubelet和kubectl(步骤同Master节点):
sudo yum update -y kubelet kubectl --disableexcludes=kubernetes sudo systemctl daemon-reload sudo systemctl restart kubelet
- 升级kubelet和kubectl(步骤同Master节点):
-
升级kubeadm(可选)
若Worker节点的kubeadm版本落后于Master节点,需升级至相同版本:sudo yum update -y kubeadm --disableexcludes=kubernetes
-
执行节点升级
使用kubeadm upgrade node
命令升级节点:sudo kubeadm upgrade node
-
解除节点保护
升级完成后,将Worker节点标记为可调度:kubectl uncordon k8s-node1 # 替换为Worker节点名称
四、升级后验证
-
检查集群状态
确认所有节点状态为"Ready":kubectl get nodes
-
检查Pod状态
确认所有Pod正常运行:kubectl get pods -A
-
验证组件版本
检查kube-apiserver、kube-controller-manager等组件的版本是否为目标版本:kubectl version --short
五、注意事项
- 版本顺序:严格遵循Kubernetes的版本升级路径(如1.27→1.28→1.29),禁止跨版本升级。
- 数据安全:升级前务必备份etcd数据,若升级失败可通过备份恢复。
- 网络插件:部分CNI插件(如Calico、Flannel)可能需要升级以适配新版本Kubernetes,升级前查阅插件文档。
- 测试环境:生产环境升级前,建议在测试环境验证升级步骤,避免影响线上业务。
- 监控告警:升级过程中开启集群监控(如Prometheus),及时发现并处理异常。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos k8s升级步骤是什么
本文地址: https://pptw.com/jishu/719004.html