确定要升级到哪个版本
使用操作系统的包管理器找到最新的补丁版本 Kubernetes 1.24:
Ubuntu、Debian 或 HypriotOS
1 2 3 4
| apt update apt-cache madison kubeadm
|
CentOS、RHEL 或 Fedora
1 2 3 4
| yum list --showduplicates kubeadm --disableexcludes=kubernetes
|
升级master
控制面节点上的升级过程应该每次处理一个节点。 首先选择一个要先行升级的控制面节点。该节点上必须拥有 /etc/kubernetes/admin.conf 文件。
kubeadm upgrade
对于第一个控制面节点
Step 1 升级 kubeadm
Ubuntu、Debian 或 HypriotOS
1 2 3 4
| apt-mark unhold kubeadm && \ apt-get update && apt-get install -y kubeadm=1.24.x-00 && \ apt-mark hold kubeadm
|
CentOS、RHEL 或 Fedora
1 2
| yum install -y kubeadm-1.24.x-0 --disableexcludes=kubernetes
|
Step 2 kubeadm version
验证下载操作正常,并且 kubeadm 版本正确:
Step 3 验证升级计划
Step 4 kubeadm upgrade apply
选择要升级到的目标版本,运行合适的命令。
1 2
| sudo kubeadm upgrade apply v1.24.x
|
对于其它控制面节点
与第一个控制面节点相同,但是使用:
1
| sudo kubeadm upgrade node
|
而不是:
1
| sudo kubeadm upgrade apply
|
此外,不需要执行 kubeadm upgrade plan 和更新 CNI 驱动插件的操作。
腾空节点
- 通过将节点标记为不可调度并腾空节点为节点作升级准备:
1 2
| kubectl drain <node-to-drain> --ignore-daemonsets
|
升级 kubelet 和 kubectl
CentOS、RHEL 或 Fedora
1 2 3 4
| apt-mark unhold kubelet kubectl && \ apt-get update && apt-get install -y kubelet=1.24.x-00 kubectl=1.24.x-00 && \ apt-mark hold kubelet kubectl
|
Ubuntu、Debian 或 HypriotOS
1 2
| yum install -y kubelet-1.24.x-0 kubectl-1.24.x-0 --disableexcludes=kubernetes
|
1 2
| sudo systemctl daemon-reload sudo systemctl restart kubelet
|
解除节点的保护
通过将节点标记为可调度,让其重新上线:
1 2
| kubectl uncordon <node-to-drain>
|
参考文章
本文由
Yuankun Li创作和发表,采用
BY-
NC-
SA国际许可协议进行许可,转载请注明作者及出处。