江
江小南
V1
2022/10/23阅读:105主题:默认主题
【CKA、CKS篇】CKA真题解析——升级集群
真题解析
题目:
现有的 Kubernetes 集群正在运行版本 1.24.2。仅将 master 节点上的所有 Kubernetes 控制平面和节点组件升级到版本 1.24.3。
确保在升级之前 drain master 节点,并在升级后 uncordon master 节点。
可以使用一下命令,通过 ssh 连接到 master 节点:
ssh master01
可以使用一下命令,在该 master 节点上获取更高权限:
sudo -i
另外,在主节点上升级 kubelet 和 kubectl。
请不要升级工作节点,etcd,container 管理区,CNI 插件,DNS 服务或任何其他插件。
考察点:
如何离线主机,并升级控制面板和升级节点
解析:
-
注意题目说的要求,仅升级 master 节点从 1.24.2 升级到 1.24.3. -
drain :腾空节点的意思,节点将受保护。uncordon:解除节点保护的意思。在升级前需要腾空节点,升级完成后解除节点保护。 -
通过 ssh 的方式到 master01 节点,并且获取到 root 权限。
参考文档:
https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/

实际操作:
-
停止调度主节点,并驱逐(腾空)主节点。
kubectl cordon master01
kubectl drain master01 --ignore-daemonsets

-
通过 ssh 的方式到 master01 节点,并且获取到 root 权限
ssh master01
sudo -i

-
查找并下载要升级的 kubeadm 安装包
apt-get update
apt-cache show kubeadm|grep 1.24.3
apt-get install kubeadm=1.24.3-00


-
检查 kubeadm 升级后的版本
kubeadm version

-
验证升级计划
kubeadm upgrade plan
此命令检查你的集群是否可被升级,并取回你要升级的目标版本。 命令也会显示一个包含组件配置版本状态的表格。

-
升级 kubeadm ,排除 etcd 升级
kubeadm upgrade apply v1.24.3 --etcd-upgrade=false
排除 etcd,升级其他的,提示时,输入 y。

-
升级 kubelet
apt-get install kubelet=1.24.3-00
kubelet --version

-
升级 kubectl
apt-get install kubectl=1.24.3-00
kubectl version

-
退出升级
# 退出 root,退回到 candidate@master01
exit
# 退出 master01,退回到 candidate@node01
exit
# 不要输入 exit 多了,否则会退出考试环境的。

-
恢复 master01 调度并检查状态
kubectl uncordon master01
kubectl get node

至此本道题目完成。
分析总结:
-
在实际的考试中,也是在 node01 节点进行操作,所以会有 ssh 到master01 节点这种情况出现。 -
对于集群的升级,需要明确升级哪个节点,升级到什么版本。 -
cordon 停止调度,将 node 调为 SchedulingDisabled。新 pod 不会被调度到该 node,但在该 node 的旧 pod 不受影响。 -
drain 驱逐节点。首先,驱逐该 node 上的 pod,并在其他节点重新创建。接着,将节点调为 SchedulingDisabled。 -
升级集群,我们先要升级 kubeadm 。考试环境中的集群,是由 kubeadm 安装的。然后根据要求依次升级 kubelet 和 kubectl。 -
在退出的时候一定注意不能多次输入 exit 。否则会退出考试环境。 -
升级完集群,要恢复节点调度,检查验证即可。
扩展知识
对于其他工作节点的升级,相比主节点稍有不同。
升级 kubeadm 使用以下命令。
sudo kubeadm upgrade node
此外,不需要执行 kubeadm upgrade plan 和更新 CNI 驱动插件的操作。
作者介绍
江
江小南
V1