ubuntu

Ubuntu K8s如何进行版本升级

小樊
43
2025-10-23 01:55:49
栏目: 智能运维

Ubuntu系统下Kubernetes版本升级指南(基于kubeadm部署)

一、升级前准备:规避风险的关键步骤

  1. 明确升级路径
    Kubernetes不支持跨多个次要版本跳跃升级(如从1.22直接升级到1.25),必须遵循“相邻次要版本递进”规则(如1.22→1.23→1.24→1.25)。可通过kubectl version查看当前集群版本,在官方升级文档中确认目标版本的兼容性。
  2. 检查集群健康状态
    升级前必须确保集群处于稳定状态,避免因原有问题导致升级失败:
    • 控制平面组件:kubectl get pods -n kube-system -l component=kube-apiserver(API Server)、-l component=etcd(Etcd)、-l component=kube-controller-manager(Controller Manager)、-l component=kube-scheduler(Scheduler),确认所有Pod状态为Running
    • 节点状态:kubectl get nodes,确认所有节点状态为Ready
    • 工作负载状态:kubectl get pods --all-namespaces --field-selector status.phase!=Running,确认无CrashLoopBackOffError等异常状态的Pod。
  3. 备份关键数据
    • 备份etcd数据(集群核心数据):sudo kubeadm etcd snapshot create --config /etc/kubernetes/admin.conf
    • 备份Kubernetes配置文件:sudo cp -r /etc/kubernetes /etc/kubernetes.bak
  4. 准备工具与环境
    • 确保kubeadmkubeletkubectl版本与当前集群版本一致(可通过apt-mark hold kubeadm kubelet kubectl锁定版本,避免自动升级)。
    • 配置Ubuntu软件源(以Kubernetes 1.29为例):创建/etc/apt/sources.list.d/kubernetes.list文件,内容为deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/deb/ /,并导入GPG密钥。

二、核心升级步骤:分阶段完成集群升级

1. 升级控制平面节点(Master节点)

控制平面是集群核心,需优先升级,且每次仅升级一个控制平面节点(若有高可用集群)。

2. 升级工作节点(Worker节点)

工作节点升级需逐个进行(或分批,确保剩余节点能承载业务流量),避免全量升级导致业务中断。

三、升级后验证:确保集群正常运行

  1. 检查集群状态
    运行kubectl get nodes,确认所有节点状态为Ready,且版本号均更新为目标版本。
  2. 检查工作负载状态
    运行kubectl get pods --all-namespaces,确认所有Pod状态为Running,无异常状态。
  3. 验证新特性
    根据目标版本的新特性(如K8s 1.25支持PodSecurity标准),进行简单测试(如创建符合PodSecurity约束的Pod),确保新特性正常工作。

四、注意事项:避免升级失败的常见陷阱

0
看了该问题的人还看了