ubuntu

如何升级Ubuntu上的Kubernetes

小樊
37
2025-10-16 14:35:41
栏目: 智能运维

如何在Ubuntu上升级Kubernetes

升级Ubuntu上的Kubernetes集群需遵循备份先行、版本检查、工具更新、控制平面升级、工作节点升级、状态验证的流程,确保集群稳定性与兼容性。

1. 升级前准备

1.1 备份集群数据

升级前必须备份etcd数据(集群核心状态存储),防止数据丢失。使用以下命令创建etcd快照:

ETCDCTL_API=3 etcdctl snapshot save /path/to/backup/snapshot.db \
  --endpoints https://<etcd-endpoint>:2379 \
  --cert /etc/kubernetes/pki/etcd/server.crt \
  --key /etc/kubernetes/pki/etcd/server.key \
  --cacert /etc/kubernetes/pki/etcd/ca.crt

替换<etcd-endpoint>为etcd服务地址(单节点集群可直接用localhost)。

1.2 检查版本兼容性

2. 更新kubeadm工具

kubeadm是升级集群的核心工具,需先将其升级到目标版本:

sudo apt-get update
sudo apt-get install -y kubeadm=<target-version>-00  # 替换<target-version>为目标版本(如1.28.0)

升级后验证kubeadm版本:

kubeadm version

3. 升级控制平面节点

控制平面节点(Master)升级需依次执行计划检查应用升级配置更新

3.1 执行升级计划

使用kubeadm upgrade plan检查可升级版本及依赖项(如容器运行时、CNI插件):

sudo kubeadm upgrade plan

输出会显示当前版本、推荐升级版本及是否需要更新kubelet/kubectl。

3.2 应用升级

根据计划结果,执行升级命令(替换<target-version>为目标版本):

sudo kubeadm upgrade apply <target-version>

升级过程中,kubeadm会自动处理控制平面组件(kube-apiserver、kube-controller-manager、kube-scheduler)的二进制文件更新。

3.3 更新节点配置

升级完成后,更新节点配置以适配新版本:

sudo kubeadm upgrade node config --kubelet-version $(kubelet --version | cut -d ' ' -f 2)
sudo systemctl restart kubelet  # 重启kubelet使配置生效

4. 升级工作节点

工作节点(Worker)需逐个升级,避免集群服务中断:

4.1 升级kubelet与kubectl

在工作节点上,升级kubelet和kubectl到目标版本:

sudo apt-get update
sudo apt-get install -y kubelet=<target-version>-00 kubectl=<target-version>-00
sudo apt-get autoremove && sudo apt-get clean  # 清理旧版本包

4.2 升级节点角色

在工作节点上执行kubeadm upgrade node,将节点升级到目标版本:

sudo kubeadm upgrade node

升级完成后,重启kubelet服务:

sudo systemctl restart kubelet

5. 验证集群状态

升级完成后,检查集群状态确保所有组件正常:

kubectl get nodes  # 确认所有节点状态为"Ready"
kubectl get pods --all-namespaces  # 确认所有Pod状态为"Running"

若节点状态未及时更新,可等待几分钟或手动删除节点(kubectl delete node <node-name>)后重新加入集群。

注意事项

0
看了该问题的人还看了