2024 CKA模拟系统制作 | Step-By-Step | 20、题目搭建-节点维护
一、题目
您必须在以下Cluster/Node上完成此考题:
Cluster Master node Worker node
zk8s master node01
设置配置环境:
[candidate@node01]$ kubectl config use-context zk8s
.
Context
安全的清空节点上的所有Pod
.
Task
将名为 node02 的 node设置为不可用,并重新调度该node上所有运行的 pods。
二、考点分析
1. 节点维护操作
-
核心考点:掌握
kubectl drain
命令的安全使用-
理解节点维护的完整流程:标记不可调度 → 驱逐 Pod → 维护 → 恢复调度
-
关键参数:
--ignore-daemonsets
,--delete-emptydir-data
,--force
-
-
驱逐机制:
-
安全终止 Pod(遵守 terminationGracePeriod)
-
重新调度到其他可用节点
-
处理 PodDisruptionBudget(PDB)限制
-
2. 守护进程集(DaemonSet)处理
-
核心考点:理解 DaemonSet 的特殊性
-
DaemonSet Pod 必须运行在所有节点上
-
使用
--ignore-daemonsets
避免驱逐失败 -
系统 DaemonSet(如 CNI 插件)必须保留
-
3. 状态应用处理
-
核心考点:有状态应用的驱逐限制
-
StatefulSet Pod 的特殊驱逐逻辑
-
需要手动干预的场景(如单副本有状态服务)
-
4. 节点状态管理
-
核心考点:
cordon
和uncordon
的工作原理-
cordon
:标记节点不可调度(NoSchedule 污点) -
drain
=cordon
+ 驱逐 Pod -
uncordon
:恢复节点调度能力
-
三、考点详细讲解
1. 安全驱逐流程
2. 关键参数解析
参数 | 作用 | 必需性 |
---|---|---|
--ignore-daemonsets | 忽略守护进程集 | 是(避免驱逐失败) |
--delete-emptydir-data | 删除临时数据卷 | 可选(清理存储) |
--force | 强制驱逐无控制器Pod | 可选(处理裸Pod) |
--timeout | 等待超时时间 | 可选(默认0,无限等待) |
--pod-selector | 选择特定Pod驱逐 | 可选(精细控制) |
3. 驱逐限制与处理
限制类型 | 解决方案 |
---|---|
PodDisruptionBudget | 检查PDB:kubectl get pdb |
单副本StatefulSet | 手动扩展副本数 |
本地存储应用 | 确保数据备份 |
关键系统Pod | 确认可驱逐性 |
四、实验环境搭建步骤
修复节点故障那道题做完后就具备了此题答题环境。
五、总结
通过此题我们对K8S集群的节点维护相关的知识点进行了详细分析。更多内容请查阅访问文档。
CKA高仿真环境简单演示视频