首页主机资讯centos k8s更新流程是怎样的

centos k8s更新流程是怎样的

时间2025-09-30 23:21:04发布访客分类主机资讯浏览708
导读:CentOS环境下Kubernetes集群更新流程 一、升级前准备 备份关键数据 备份etcd数据库(集群状态核心存储)、/etc/kubernetes/目录(配置文件)及/etc/etcd/目录(etcd数据),确保升级失败时可快速恢...

CentOS环境下Kubernetes集群更新流程

一、升级前准备

  1. 备份关键数据
    备份etcd数据库(集群状态核心存储)、/etc/kubernetes/目录(配置文件)及/etc/etcd/目录(etcd数据),确保升级失败时可快速恢复。常用命令:

    ETCDCTL_API=3 etcdctl --endpoints=https://<
        etcd-ip>
        :2379 --cacert=/etc/etcd/ca.crt --cert=/etc/etcd/server.crt --key=/etc/etcd/server.key snapshot save /var/lib/etcd/backup/snapshot.db
    cp -r /etc/kubernetes/ /etc/kubernetes.backup/
    cp -r /etc/etcd/ /etc/etcd.backup/
    
  2. 检查集群状态
    确保所有节点处于Ready状态,无未完成的Pod调度或异常事件:

    kubectl get nodes
    kubectl get pods --all-namespaces
    
  3. 确认版本兼容性
    Kubernetes仅支持逐次小版本升级(如v1.23→v1.24→v1.25),禁止跨大版本跳跃。通过官方文档确认目标版本与当前版本的兼容性,避免因版本跳过导致组件冲突。

  4. 配置Kubernetes Repo仓库
    在所有节点上更新Kubernetes官方YUM仓库,确保能下载最新版本组件。以CentOS 7为例:

    cat <
        <
        EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    

二、升级控制平面节点(Master Node)

  1. 升级kubeadm工具
    在Master节点上,使用YUM安装目标版本的kubeadm(集群升级核心工具):

    sudo yum update -y kubeadm --disableexcludes=kubernetes
    
  2. 查看升级计划
    执行kubeadm upgrade plan命令,检查集群可升级的目标版本及需要更新的组件(如kube-apiserver、kube-controller-manager等),确认升级可行性:

    sudo kubeadm upgrade plan
    
  3. 执行控制平面升级
    使用kubeadm upgrade apply命令升级Master节点的控制平面组件,自动替换旧版本二进制文件并重启服务:

    sudo kubeadm upgrade apply v<
        target-version>
        
    
  4. 升级Master节点的kubelet和kubectl
    升级Master节点上的kubelet(节点代理)和kubectl(命令行工具)至目标版本,并重启kubelet服务:

    sudo yum update -y kubelet kubectl --disableexcludes=kubernetes
    sudo systemctl daemon-reload
    sudo systemctl restart kubelet
    
  5. 解除Master节点保护
    升级完成后,将Master节点标记为可调度,允许新Pod调度至该节点:

    kubectl uncordon <
        master-node-name>
        
    

三、升级工作节点(Worker Node)

  1. 逐个升级工作节点
    为避免集群不可用,每次仅升级一个工作节点,待其恢复后再升级下一个节点。

  2. 标记节点为不可调度并驱逐Pod
    使用cordon命令将节点标记为不可调度,再通过drain命令驱逐节点上的所有Pod(--ignore-daemonsets忽略DaemonSet管理的Pod,--delete-emptydir-data清理临时数据):

    kubectl cordon <
        worker-node-name>
        
    kubectl drain <
        worker-node-name>
         --ignore-daemonsets --delete-emptydir-data
    
  3. 升级工作节点的kubeadm、kubelet和kubectl
    在工作节点上执行与Master节点相同的步骤,升级kubeadm、kubelet和kubectl至目标版本,并重启kubelet服务:

    sudo yum update -y kubeadm kubelet kubectl --disableexcludes=kubernetes
    sudo systemctl daemon-reload
    sudo systemctl restart kubelet
    
  4. 执行节点升级
    使用kubeadm upgrade node命令升级工作节点的组件,同步至集群最新版本:

    sudo kubeadm upgrade node
    
  5. 恢复节点调度
    升级完成后,将工作节点标记为可调度,等待节点状态变为Ready

    kubectl uncordon <
        worker-node-name>
        
    

四、升级后验证

  1. 检查集群状态
    确认所有节点状态为Ready,无异常事件:

    kubectl get nodes
    
  2. 检查Pod运行状态
    查看kube-system命名空间下的核心组件(如kube-apiserver、kube-controller-manager、kube-scheduler)及业务Pod是否正常运行:

    kubectl get pods --all-namespaces
    
  3. 验证功能正常性
    部署一个测试Pod(如nginx),检查是否能正常调度、启动及访问,确保升级未影响业务功能:

    kubectl run test-pod --image=nginx --restart=Never
    kubectl get pod test-pod
    kubectl port-forward test-pod 8080:80
    

五、注意事项

  • 版本兼容性:严格遵循逐次小版本升级路径,避免跨版本跳跃导致组件不兼容。
  • 备份与回滚:升级前务必备份关键数据,若升级失败可通过备份恢复至原版本。
  • 滚动升级:逐个节点升级,确保集群始终有足够容量承载业务负载。
  • 监控与日志:升级过程中实时监控集群状态(如CPU、内存、网络),查看组件日志(journalctl -xeu kubelet)排查异常。
  • 自定义组件适配:若使用了Calico、Flannel等第三方网络插件或自定义CRD,需参考插件文档升级至兼容版本,避免功能失效。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos k8s更新流程是怎样的
本文地址: https://pptw.com/jishu/714925.html
k8s如何适应centos环境变化 k8s在centos上的资源分配如何

游客 回复需填写必要信息