升级Master01节点¶
1、查看最新版本
[root@master01 ~]# yum list --showduplicates kubeadm

2、升级kubeadm
[root@master01 ~]# yum install kubeadm-1.27.6-0 -y
验证下载操作正常,并且 kubeadm 版本正确
[root@master01 ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.6", GitCommit:"741c8db18a52787d734cbe4795f0b4ad860906d6", GitTreeState:"clean", BuildDate:"2023-09-13T09:19:54Z", GoVersion:"go1.20.8", Compiler:"gc", Platform:"linux/amd64"}
3、将Master01节点标记为不可调度
[root@master01 ~]# kubectl drain master01 --ignore-daemonsets
4、查看集群是否能够升级,观察到支持升级v1.27最高版本为v1.27.7
[root@master01 ~]# kubeadm upgrade plan

5、执行升级
[root@master01 ~]# kubeadm upgrade apply v1.27.6
如果升级成功后,会出现以下字样
[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.27.6". Enjoy!
[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so.
6、升级kubelet和kubectl
[root@master01 ~]# yum install -y kubelet-1.27.6-0 kubectl-1.27.6-0
7、重启kubelet
systemctl daemon-reload
systemctl restart kubelet
8、恢复调度,上线
[root@master01 ~]# kubectl uncordon master01
升级Master02节点¶
1、Master02节点升级kubeadm
[root@master02 ~]# yum install kubeadm-1.27.6-0 -y
验证下载操作正常,并且 kubeadm 版本正确
[root@master02 ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.6", GitCommit:"741c8db18a52787d734cbe4795f0b4ad860906d6", GitTreeState:"clean", BuildDate:"2023-09-13T09:19:54Z", GoVersion:"go1.20.8", Compiler:"gc", Platform:"linux/amd64"}
2、将Master02节点标记为不可调度
[root@master02 ~]# kubectl drain master02 --ignore-daemonsets
3、Master02节点执行升级
[root@master01 ~]# kubeadm upgrade node
如果升级成功后,会出现以下字样
[upgrade] The configuration for this node was successfully updated!
[upgrade] Now you should go ahead and upgrade the kubelet package using your package manager.
4、Master02节点升级kubelet和kubectl
[root@master02 ~]# yum install -y kubelet-1.27.6-0 kubectl-1.27.6-0
5、Master02节点重启kubelet
systemctl daemon-reload
systemctl restart kubelet
6、Master02节点恢复调度,上线
[root@master01 ~]# kubectl uncordon master02
升级Master03节点¶
1、Master03节点升级kubeadm
[root@master03 ~]# yum install kubeadm-1.27.6-0 -y
验证下载操作正常,并且 kubeadm 版本正确
[root@master03 ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.6", GitCommit:"741c8db18a52787d734cbe4795f0b4ad860906d6", GitTreeState:"clean", BuildDate:"2023-09-13T09:19:54Z", GoVersion:"go1.20.8", Compiler:"gc", Platform:"linux/amd64"}
2、将Master03节点标记为不可调度
[root@master01 ~]# kubectl drain master03 --ignore-daemonsets
3、Master03节点执行升级
[root@master03 ~]# kubeadm upgrade node
如果升级成功后,会出现以下字样
[upgrade] The configuration for this node was successfully updated!
[upgrade] Now you should go ahead and upgrade the kubelet package using your package manager.
4、Master03节点升级kubelet和kubectl
[root@master01 ~]# yum install -y kubelet-1.27.6-0 kubectl-1.27.6-0
5、Master03节点重启kubelet
systemctl daemon-reload
systemctl restart kubelet
6、Master03节点恢复调度,上线
[root@master01 ~]# kubectl uncordon master03
升级node01节点¶
1、node01节点升级kubeadm
[root@node01 ~]# yum install kubeadm-1.27.6-0 -y
验证下载操作正常,并且 kubeadm 版本正确
[root@node01 ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.6", GitCommit:"741c8db18a52787d734cbe4795f0b4ad860906d6", GitTreeState:"clean", BuildDate:"2023-09-13T09:19:54Z", GoVersion:"go1.20.8", Compiler:"gc", Platform:"linux/amd64"}
2、将node01节点标记为不可调度
[root@master01 ~]# kubectl drain node01 --ignore-daemonsets --delete-emptydir-data
3、node01节点执行升级
[root@node01 ~]# kubeadm upgrade node
如果升级成功后,会出现以下字样
[upgrade] The configuration for this node was successfully updated!
[upgrade] Now you should go ahead and upgrade the kubelet package using your package manager.
4、node01节点升级kubelet和kubectl
[root@node01 ~]# yum install -y kubelet-1.27.6-0 kubectl-1.27.6-0
5、node01节点重启kubelet
systemctl daemon-reload
systemctl restart kubelet
6、node01节点恢复调度,上线
[root@master01 ~]# kubectl uncordon node01
升级node02节点¶
1、node02节点升级kubeadm
[root@node02 ~]# yum install kubeadm-1.27.6-0 -y
验证下载操作正常,并且 kubeadm 版本正确
[root@node02 ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.6", GitCommit:"741c8db18a52787d734cbe4795f0b4ad860906d6", GitTreeState:"clean", BuildDate:"2023-09-13T09:19:54Z", GoVersion:"go1.20.8", Compiler:"gc", Platform:"linux/amd64"}
2、将node02节点标记为不可调度
[root@master01 ~]# kubectl drain node02 --ignore-daemonsets --delete-emptydir-data
3、node02节点执行升级
[root@node02 ~]# kubeadm upgrade node
如果升级成功后,会出现以下字样
[upgrade] The configuration for this node was successfully updated!
[upgrade] Now you should go ahead and upgrade the kubelet package using your package manager.
4、node02节点升级kubelet和kubectl
[root@node02 ~]# yum install -y kubelet-1.27.6-0 kubectl-1.27.6-0
5、node02节点重启kubelet
systemctl daemon-reload
systemctl restart kubelet
6、node02节点恢复调度,上线
[root@master01 ~]# kubectl uncordon node02