升级 Linux 节点
本页讲述了如何升级用 kubeadm 创建的 Linux 工作节点。
准备开始
你必须有 Shell 能访问所有节点,且必须配置 kubectl 命令行工具让其与你的集群通信。 建议运行本教程的集群至少有两个节点,且这两个节点不能作为控制平面主机。
要获知版本信息,请输入kubectl version
.
- 你自己要熟悉升级剩余 kubeadm 集群的过程。 你需要先升级控制面节点,再升级 Linux 工作节点。
更改软件包仓库
如果你正在使用社区自治的软件包仓库(pkgs.k8s.io
),
你需要启用所需的 Kubernetes 小版本的软件包仓库。
这一点在更改 Kubernetes 软件包仓库文档中有详细说明。
说明: The legacy package repositories (
apt.kubernetes.io
and yum.kubernetes.io
) have been
deprecated and frozen starting from September 13, 2023.
Using the new package repositories hosted at pkgs.k8s.io
is strongly recommended and required in order to install Kubernetes versions released after September 13, 2023.
The deprecated legacy repositories, and their contents, might be removed at any time in the future and without
a further notice period. The new package repositories provide downloads for Kubernetes versions starting with v1.24.0.
升级工作节点
升级 kubeadm
升级 kubeadm:
# 将 1.30.x-* 中的 x 替换为最新的补丁版本
sudo apt-mark unhold kubeadm && \
sudo apt-get update && sudo apt-get install -y kubeadm='1.30.x-*' && \
sudo apt-mark hold kubeadm
# 将 1.30.x-* 中的 x 替换为最新的补丁版本
sudo yum install -y kubeadm-'1.30.x-*' --disableexcludes=kubernetes
执行 "kubeadm upgrade"
对于工作节点,下面的命令会升级本地的 kubelet 配置:
sudo kubeadm upgrade node
腾空节点
将节点标记为不可调度并驱逐所有负载,准备节点的维护:
# 在控制平面节点上执行此命令
# 将 <node-to-drain> 替换为你正腾空的节点的名称
kubectl drain <node-to-drain> --ignore-daemonsets
升级 kubelet 和 kubectl
-
升级 kubelet 和 kubectl:
# 将 1.30.x-* 中的 x 替换为最新的补丁版本 sudo apt-mark unhold kubelet kubectl && \ sudo apt-get update && sudo apt-get install -y kubelet='1.30.x-*' kubectl='1.30.x-*' && \ sudo apt-mark hold kubelet kubectl
# 将 1.30.x-* 中的 x 替换为最新的补丁版本 sudo yum install -y kubelet-'1.30.x-*' kubectl-'1.30.x-*' --disableexcludes=kubernetes
-
重启 kubelet:
sudo systemctl daemon-reload sudo systemctl restart kubelet
取消对节点的保护
通过将节点标记为可调度,让节点重新上线:
# 在控制平面节点上执行此命令
# 将 <node-to-uncordon> 替换为你的节点名称
kubectl uncordon <node-to-uncordon>
接下来
- 查阅如何升级 Windows 节点。
最后修改 April 28, 2024 at 2:18 AM PST: [zh-cn] minor update task/administer-cluster (cc4bb6d141)