江小南

V1

2022/10/23阅读:26主题:默认主题

【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/

实际操作

  1. 查看节点
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 状态。

  1. 登录节点
ssh node02

sudo -i
  1. 查看服务状态
systemctl status kubelet

会发现服务 kubelet 没有启动。

  1. 启动服务,并设置为开机启动
systemctl start kubelet

systemctl enable kubelet
  1. 检查验证
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/

实际操作

  1. 执行命令,模拟节点异常
# 查看节点状态
kubectl get node
# 停止节点调度
kubectl cordon node02
# 再次查看节点状态
kubectl get node

这样就可以模拟 node02 异常。

  1. 清空节点
kubectl drain node02 --ignore-daemonsets
# 如果上面有报错可以使用一下命令
# kubectl drain node02 --ignore-daemonsets --delete-emptydir-data --force
  1. 检查验证
kubectl get node

kubectl get pod -A -o wide|grep node02

至此本道题目完成。

分类:

后端

标签:

云计算

作者介绍

江小南
V1