You need to enable JavaScript to run this app. 如何升级kubectl服务端版本至v1.21以适配客户端解决Selflink问题
优惠活动
大模型
产品
解决方案
定价
更多

如何升级kubectl服务端版本至v1.21以适配客户端解决Selflink问题

Kubernetes服务端版本升级操作指南

当前你客户端版本为v1.21.2,服务端版本为v1.20.7,将服务端升级至v1.21.2即可和客户端版本对齐,同时解决v1.21版本后SelfLink弃用的相关问题。操作前请先完成etcd全量备份,优先在测试集群验证流程后再操作生产集群。

操作步骤(kubeadm搭建集群适用)

1. 所有节点升级kubeadm工具

  • Debian/Ubuntu系操作系统执行:
apt remove -y kubeadm
apt install -y kubeadm=1.21.2-00
  • CentOS/RHEL系操作系统执行:
yum remove -y kubeadm
yum install -y kubeadm-1.21.2-0
  • 验证版本正确:kubeadm version

2. 控制平面节点升级

单master集群/多master集群首个master节点操作

  • 执行预检查确认升级可行性:kubeadm upgrade plan
  • 执行升级命令,交互阶段输入y确认:kubeadm upgrade apply v1.21.2
  • 升级当前节点的kubelet和kubectl:
    Debian/Ubuntu:apt install -y kubelet=1.21.2-00 kubectl=1.21.2-00
    CentOS/RHEL:yum install -y kubelet-1.21.2-0 kubectl-1.21.2-0
  • 重启kubelet服务生效:systemctl daemon-reload && systemctl restart kubelet

多master集群其余master节点操作

  • 执行升级命令:kubeadm upgrade node
  • 同上述步骤升级kubelet、kubectl并重启kubelet服务

3. 工作节点升级(逐个操作,避免业务中断)

  • 在master节点执行命令驱逐当前待升级节点的Pod,替换<节点名>为实际节点名称:kubectl drain <节点名> --ignore-daemonsets
  • 登录待升级worker节点,按照第一步操作安装v1.21.2版本kubeadm
  • 执行节点升级命令:kubeadm upgrade node
  • 升级当前节点kubelet:
    Debian/Ubuntu:apt install -y kubelet=1.21.2-00
    CentOS/RHEL:yum install -y kubelet-1.21.2-0
  • 重启kubelet服务生效:systemctl daemon-reload && systemctl restart kubelet
  • 回到master节点取消节点驱逐:kubectl uncordon <节点名>
  • 重复上述流程完成所有工作节点升级

4. 结果验证

  • 执行kubectl version,确认Server Version输出为v1.21.2,和客户端版本一致
  • 执行kubectl get nodes,确认所有节点状态为Ready,版本均显示为v1.21.2
  • 验证原有业务运行正常,SelfLink相关弃用警告/报错消失

其他集群部署方式说明

  • 二进制部署集群:直接替换各节点kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kubectl等核心组件二进制文件为v1.21.2版本,逐节点重启服务即可
  • 云厂商托管集群:直接在对应云平台控制台选择集群版本升级到v1.21.2即可,无需手动操作节点

内容的提问来源于stack exchange,提问作者yunlee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 22:18:03