升级 Linux 节点

本页解释了如何升级使用 kubeadm 创建的 Linux Worker 节点。

开始之前

您需要具有所有节点的 shell 访问权限,并且 kubectl 命令行工具必须配置为与您的集群通信。建议在至少有两个非控制平面节点的集群上运行本教程。

要检查版本,请输入 kubectl version

更改软件包仓库

如果您使用的是社区拥有的软件包仓库 (pkgs.k8s.io),则需要启用所需 Kubernetes 次要版本的软件包仓库。这在 更改 Kubernetes 软件包仓库 文档中进行了说明。

升级 Worker 节点

升级 kubeadm

升级 kubeadm

# replace x in 1.35.x-* with the latest patch version
sudo apt-mark unhold kubeadm && \
sudo apt-get update && sudo apt-get install -y kubeadm='1.35.x-*' && \
sudo apt-mark hold kubeadm

对于使用 DNF 的系统

# replace x in 1.35.x-* with the latest patch version
sudo yum install -y kubeadm-'1.35.x-*' --disableexcludes=kubernetes

对于使用 DNF5 的系统

# replace x in 1.35.x-* with the latest patch version
sudo yum install -y kubeadm-'1.35.x-*' --setopt=disable_excludes=kubernetes

调用 "kubeadm upgrade"

对于 Worker 节点,这将升级本地 kubelet 配置

sudo kubeadm upgrade node

清空节点

通过标记节点为不可调度并驱逐工作负载来为维护准备节点

# execute this command on a control plane node
# replace <node-to-drain> with the name of your node you are draining
kubectl drain <node-to-drain> --ignore-daemonsets

升级 kubelet 和 kubectl

  1. 升级 kubelet 和 kubectl

    # replace x in 1.35.x-* with the latest patch version
    sudo apt-mark unhold kubelet kubectl && \
    sudo apt-get update && sudo apt-get install -y kubelet='1.35.x-*' kubectl='1.35.x-*' && \
    sudo apt-mark hold kubelet kubectl
    

    对于使用 DNF 的系统

    # replace x in 1.35.x-* with the latest patch version
    sudo yum install -y kubelet-'1.35.x-*' kubectl-'1.35.x-*' --disableexcludes=kubernetes
    

    对于使用 DNF5 的系统

    # replace x in 1.35.x-* with the latest patch version
    sudo yum install -y kubelet-'1.35.x-*' kubectl-'1.35.x-*' --setopt=disable_excludes=kubernetes
    
  2. 重启 kubelet

    sudo systemctl daemon-reload
    sudo systemctl restart kubelet
    

取消清空节点

通过标记节点为可调度来使节点恢复在线

# execute this command on a control plane node
# replace <node-to-uncordon> with the name of your node
kubectl uncordon <node-to-uncordon>

接下来

上次修改时间:2025 年 8 月 25 日下午 5:08 PST:添加了 DNF5 的示例 (fefe9b4158)