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-controlplane1 和 ssh cluster3-node1 来连接到实例。
解答
检查版本
kubectl get node
首先 需要更新控制平面节点, 驱逐上面的pod
kubectl cordon cluster3-controlplane1
kubectl drain cluster3-controlplane1 --ignore-daemonsets
连接到 master 检查 kubeadm kubelet 版本
ssh cluster3-controlplane1
kubeadm version
kubelet --version
如果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