书籍来源:《CKA/CKAD应试指南:从Docker到Kubernetes完全攻略》
一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:Kubernetes认证考试自学系列 | 汇总_COCOgsta的博客-CSDN博客
升级worker的步骤基本上和升级master的步骤是一致的,也是先升级kubeadm,然后把节点设置为维护模式,再升级各个组件,最后升级kubelet和kubectl。
步骤1:首先升级worker上的kubeadm到1.21.1版本。
[root@vms16 ~]# yum install -y kubeadm-1.21.1-0 --disableexcludes=kubernetes
已加载插件: fastestmirror
base | 3.6 kB 00:00:00
... 输出 ...
更新完毕:
kubeadm.x86_64 0:1.21.1-0
完毕!
[root@vms16 ~]#
复制代码
步骤2:在vms15上把vms16设置为维护模式。
[root@vms15 ~]# kubectl drain vms16.rhce.cc --ignore-daemonsets
node/vms16.rhce.cc cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-system/calico-node-96214, kube-system/kube-proxy-j6bbs
... 输出 ...
pod/coredns-6d56c8448f-29dvf evicted
pod/calico-kube-controllers-65f8bc95db-72lwt evicted
node/vms16.rhce.cc evicted
[root@vms15 ~]#
复制代码
步骤3:查看集群状态。
[root@vms15 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
vms15.rhce.cc Ready master 2h v1.21.1
vms16.rhce.cc Ready,SchedulingDisabled <none> 2h v1.20.1
[root@vms15 ~]#
复制代码
步骤4:切换到vms16,更新worker上的kubernetes集群组件。
[root@vms16 ~]# kubeadm upgrade node
[upgrade] Reading configuration from the cluster...
[upgrade] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[preflight] Running pre-flight checks
[preflight] Skipping prepull. Not a control plane node.
[upgrade] Skipping phase. Not a control plane node.
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/confg.yaml"
[upgrade] The configuration for this node was successfully updated!
[upgrade] Now you should go ahead and upgrade the kubelet package using your package manager.
[root@vms16 ~]#
复制代码
步骤5:更新kubelet和kubectl
[root@vms16 ~]# yum install -y kubelet-1.21.1-0 kubectl-1.21.1-0 --disableexcludes=kubernetes
已加载插件: fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 kubectl.x86_64.0.1.21.1-0 将被升级
---> 软件包 kubectl.x86_64.0.1.21.1-0 将被更新
... 输出 ...
验证中 : kubectl-1.21.1-0.x86_64 4/4
更新完毕:
kubelet.x86_64 0:1.21.1-0 kubectl.x86_64 0:1.21.1-0
完毕!
[root@vms16 ~]#
重启服务
[root@vms16 ~]# systemctl daemon-reload ; systemctl restart kubelet
[root@vms16 ~]#
复制代码
步骤6:在vms15上取消worker的维护模式。
[root@vms15 ~]# kubectl uncordon vms16.rhce.cc
node/vms16.rhce.cc uncordoned
[root@vms15 ~]#
复制代码
验证:
[root@vms15 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
vms15.rhce.cc Ready master 2h v1.21.1
vms16.rhce.cc Ready <none> 2h v1.21.1
[root@vms15 ~]#
复制代码
至此worker升级完毕。