Task weight: 8%

Use context: kubectl config use-context workload-stage

The cluster is running Kubernetes 1.25.5, update it to 1.26.0.

Use apt package manager and kubeadm for this.

Use ssh cluster3-controlplane1 and ssh cluster3-node1 to connect to the instances.


译文

任务权重:8%。

使用环境: kubectl config use-context workload-stage

该集群正在运行Kubernetes 1.25.5,请将其更新为1.26.0

为此使用 apt 软件包管理器和 kubeadm

使用 ssh cluster3-controlplane1ssh cluster3-node1 来连接到实例。


解答

检查版本

kubectl get node

file

首先 需要更新控制平面节点, 驱逐上面的pod
kubectl cordon cluster3-controlplane1
kubectl drain cluster3-controlplane1 --ignore-daemonsets

连接到 master 检查 kubeadm kubelet 版本

ssh cluster3-controlplane1

kubeadm version
kubelet --version

file

如果kubeadm没有安装更新版本可以使用下面命令进行安装

apt-mark unhold kubeadm
apt-mark hold kubectl kubelet
apt install kubeadm=1.26.0-00
apt-mark hold kubeadm

检查kubeadm升级计划

kubeadm upgrade plan

升级

kubeadm upgrade apply v1.26.0

升级 kubelet 和kubectl

apt update
apt-mark unhold kubelet kubectl
apt install kubelet=1.26.0-00 kubectl=1.26.0-00 -y
apt-mark hold kubelet kubectl
service kubelet restart
service kubelet status
kubectl uncordon cluster3-controlplane1
kubectl get node
其次升级 worker 节点
kubectl get node
kubectl cordon cluster3-node1
kubectl drain cluster3-node1 --ignore-daemonsets
ssh cluster3-node1

apt update
apt-mark unhold kubeadm
apt-mark hold kubectl kubelet
apt install kubeadm=1.26.0-00
apt-mark hold kubeadm
kubeadm upgrade node

apt-mark unhold kubectl kubelet
apt install kubelet=1.26.0-00 kubectl=1.26.0-00
service kubelet restart
service kubelet status

kubectl get node
kubectl uncordon cluster3-node1