江
江小南
V1
2022/10/23阅读:49主题:默认主题
【CKA、CKS篇】CKA真题解析——排查集群中故障节点&节点维护
真题解析1
题目:
名为 node02 的 Kubernetes worker node 处于 NotReady 状态。
调查发现这种情况的原因,并采取相应的措施将 node 恢复为 Ready 状态,确保所做的任何更改永久有效。
可以使用一下命令,通过 ssh 连接到node02 节点:
ssh node02
可以使用一下命令,在该节点上获取更高权限:
sudo -i
考察点:
排查节点故障
帮助文档:
https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/kubelet-integration/

实际操作:
-
查看节点
candidate@node01:~$ kubectl get node
NAME STATUS ROLES AGE VERSION
master01 Ready control-plane 60d v1.24.2
node01 Ready <none> 60d v1.24.2
node02 NotReady <none> 60d v1.24.2
candidate@node01:~$
发现 node02 为 NotReady 状态。
-
登录节点
ssh node02
sudo -i

-
查看服务状态
systemctl status kubelet

会发现服务 kubelet 没有启动。
-
启动服务,并设置为开机启动
systemctl start kubelet
systemctl enable kubelet

-
检查验证
systemctl status kubelet

# 退出 root 用户
exit
# 退回 node01 节点
exit
# 检查节点状态
kubectl get node

说明:退出是不要输入多次 exit ,防止退出考试环境。
至此本道题目完成。
真题解析2
题目:
将名为 node02 的node 设置为不可用,并重新调度该 node 上所有运行的 pods。
考察点:
cordon 和 drain 命令的使用
帮助文档:
https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/safely-drain-node/

实际操作:
-
执行命令,模拟节点异常
# 查看节点状态
kubectl get node
# 停止节点调度
kubectl cordon node02
# 再次查看节点状态
kubectl get node

这样就可以模拟 node02 异常。
-
清空节点
kubectl drain node02 --ignore-daemonsets
# 如果上面有报错可以使用一下命令
# kubectl drain node02 --ignore-daemonsets --delete-emptydir-data --force

-
检查验证
kubectl get node
kubectl get pod -A -o wide|grep node02
至此本道题目完成。
作者介绍
江
江小南
V1