升级 Linux 节点
此页面说明如何升级使用 kubeadm 创建的 Linux 工作节点。
开始之前
您需要对所有节点有 shell 访问权限,并且必须配置 kubectl 命令行工具以与您的集群通信。建议在至少有两个节点的集群上运行本教程,这些节点不充当控制平面主机。
要检查版本,请输入kubectl version
。- 熟悉升级其余 kubeadm 集群的过程。您需要在升级 Linux 工作节点之前升级控制平面节点。
更改软件包存储库
如果您使用的是社区拥有的软件包存储库 (pkgs.k8s.io
),则需要为所需的 Kubernetes 次要版本启用软件包存储库。这在更改 Kubernetes 软件包存储库 文档中进行了说明。
注意: 传统软件包存储库 (
apt.kubernetes.io
和 yum.kubernetes.io
) 已弃用并冻结,自 2023 年 9 月 13 日起生效。强烈建议并要求使用托管在 pkgs.k8s.io
的新软件包存储库,以便安装 2023 年 9 月 13 日之后发布的 Kubernetes 版本。 弃用的传统存储库及其内容可能会在将来任何时间被删除,恕不另行通知。新的软件包存储库提供从 v1.24.0 开始的 Kubernetes 版本的下载。升级工作节点
升级 kubeadm
升级 kubeadm
# replace x in 1.31.x-* with the latest patch version
sudo apt-mark unhold kubeadm && \
sudo apt-get update && sudo apt-get install -y kubeadm='1.31.x-*' && \
sudo apt-mark hold kubeadm
# replace x in 1.31.x-* with the latest patch version
sudo yum install -y kubeadm-'1.31.x-*' --disableexcludes=kubernetes
调用 "kubeadm upgrade"
对于工作节点,这将升级本地 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
升级 kubelet 和 kubectl
# replace x in 1.31.x-* with the latest patch version sudo apt-mark unhold kubelet kubectl && \ sudo apt-get update && sudo apt-get install -y kubelet='1.31.x-*' kubectl='1.31.x-*' && \ sudo apt-mark hold kubelet kubectl
# replace x in 1.31.x-* with the latest patch version sudo yum install -y kubelet-'1.31.x-*' kubectl-'1.31.x-*' --disableexcludes=kubernetes
重启 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>
下一步
- 了解如何升级 Windows 节点。
上次修改时间:2024 年 4 月 4 日下午 5:27 PST:将 shell 访问先决条件添加到节点升级集群任务中 (7a91dcc078)