【免费下载链接】cka-certification-guide
This comprehensive CKA learning path repo equips aspiring Kubernetes administrators with all the knowledge and resources to ace the CKA exam on the first try. Includes in-depth explanations, hands-on labs, and valuable study materials. Pass the CKA and unlock your Kubernetes potential today!
在 CKA(Certified Kubernetes Administrator)考试中,Troubleshooting(故障排障)域占 30% 分值,是权重最高的单一领域。本文基于开源学习指南 cka-certification-guide,为你完整解读 NodeNotReady与 PodCrashLoopBackOff两大高频故障的系统化排障 Playbook,帮新手建立一套"不慌、有序、可复现"的 CKA 排障思维。
📌核心认知:所有 CKA 排障题都能用同一套四步法回答——查状态 → 看事件 → 查日志 → 修完验证。方法论比单点命令更重要。
CKA 考试分值分布:为什么 Troubleshooting 最优先学
ck-certification-guide 按官方权重把知识域划分为五块,排障域高居榜首:
| 知识域 | 分值权重 | 对应学习文件 |
|---|---|---|
| Troubleshooting(排障) | 30% | study-notes/05-troubleshooting.md |
| Cluster Architecture(集群架构) | 25% | study-notes/01-cluster-architecture.md |
| Services & Networking(服务网络) | 20% | study-notes/04-services-networking.md |
| Workloads & Scheduling(工作负载) | 15% | study-notes/02-workloads-scheduling.md |
| Storage(存储) | 10% | study-notes/03-storage.md |
💡备考建议:如果时间紧张,优先啃 Domain 5(排障)+ Domain 1(架构),这两块覆盖了一半以上分值。
系统化四步排障法:从 kubectl get 到 journalctl
仓库中的 TROUBLESHOOTING_GUIDE.md 把排障抽象成一条固定流水线,下图就是这套 Kubernetes 排障方法论的完整流程:
每一步都在回答一个具体问题:
kubectl get <resource> -o wide—— 现在是什么状态?kubectl describe <resource>—— 为什么是这个状态?(重点读底部 Events,能揭示 80% 的问题)kubectl logs <pod>(加--previous看崩溃前日志)—— 应用说了什么?systemctl/journalctl—— 系统与 kubelet 说了什么?
Node NotReady 排障:5 步定位法
节点显示NotReady是 CKA 几乎必考的节点级故障。按顺序走:
# 1. 看节点状态与条件 kubectl get nodes -o wide kubectl describe node <node> # 重点看 Conditions 和 Events # 2. 登录节点查 kubelet ssh <node> systemctl status kubelet # 3. 常见修复:启动/自启 kubelet systemctl start kubelet && systemctl enable kubelet # 4. 读 kubelet 日志找根因 journalctl -u kubelet --since "10 minutes ago" | grep -i error| 节点 Condition | 含义 | 常用排查命令 |
|---|---|---|
MemoryPressure=True | 内存不足 | free -m、top |
DiskPressure=True | 磁盘写满 | df -h,清理/var/lib/kubelet、容器镜像 |
PIDPressure=True | 进程数过多 | 排查僵尸进程 |
Ready=False | kubelet 停摆或证书过期 | systemctl status kubelet、kubeadm certs check-expiration |
🔍考试技巧:绝大多数
NotReady场景就是 kubelet 被停了。systemctl start kubelet一步解决,然后回控制面kubectl get nodes验证恢复。
CrashLoopBackOff 退出码速查表:1 分钟锁定根因
Pod 反复崩溃重启时,Exit Code 是最好的线索。describe 之后直接查表:
| Exit Code | 含义 | 处置方向 |
|---|---|---|
0 | 正常退出 | 容器没保持运行(缺 sleep/前台进程) |
1 | 应用错误 | 看日志、环境变量、配置文件 |
2 | shell 命令误用 | 修 command |
126 | 权限被拒 | 检查文件权限 |
127 | 命令未找到 | 镜像或 entrypoint 写错了 |
137 | OOMKilled(内存超限) | 调大resources.limits.memory |
143 | 优雅终止 | 正常关停信号 |
kubectl describe pod <pod> | grep "Exit Code" kubectl logs <pod> --previous # 看崩溃前的日志其中最经典的就是137 = OOMKilled:容器内存触碰 limit 后被 SIGKILL。理解 requests 与 limits 的关系是避免误伤的前提:
⚠️易错点:
kubectl logs默认只能看当前容器。CrashLoopBackOff 的容器已经死了,必须加--previous才能看到致命错误。
API Server 挂了怎么办:crictl 救援流程
更棘手的是控制面本身故障——此时kubectl不可用,必须登录节点用crictl直接操作容器运行时。理解下面这张静态 Pod 工作机制图是关键:控制面组件由 kubelet 直接托管,API Server 管不了自己。
控制面节点上必须熟悉这套目录布局,证书、manifest、kubeconfig 都在这里:
# kubectl 失效时的救援顺序 crictl ps -a | grep kube-apiserver crictl logs <container-id> ls /etc/kubernetes/manifests/ # 确认 4 个静态 Pod manifest 齐全 kubeadm certs check-expiration # 证书是否过期 kubeadm certs renew all && systemctl restart kubelet export KUBECONFIG=/etc/kubernetes/admin.conf # 恢复访问🚑Fast Recovery 工作流(考试限时场景直接按顺序跑):
systemctl status kubelet→journalctl -u kubelet -n 50→ls /etc/kubernetes/manifests/→crictl ps -a→kubeadm certs check-expiration。
CKA 高频排障场景速查清单
TROUBLESHOOTING_GUIDE.md 里总结了"症状 → 最可能原因 → 第一修复"的对照表,考前过一遍能节省大量现场思考时间:
| 症状 | 最可能原因 | 第一修复 |
|---|---|---|
NodeNotReady | kubelet 停止 | systemctl start kubelet |
PodCrashLoopBackOff | 应用错误/配置错误 | kubectl logs <pod> --previous |
PodOOMKilled | 内存 limit 过低 | 调大resources.limits.memory |
PodImagePullBackOff | 镜像名/tag 错误或缺拉取密钥 | 修 image,补 imagePullSecrets |
PodPending | 无节点可调度 | 查 taints、亲和性、资源 |
| Service 无 endpoints | selector 与 Pod 标签不匹配 | kubectl edit svc修 selector |
PVCPending | 无匹配 PV 或 StorageClass | kubectl describe pvc |
配套还有完整的 CHEATSHEET.md 命令速查表,其中明确标注了kubectl describe node / drain / cordon、kubectl logs、journalctl -u kubelet等命令都归属于 30% 权重的排障域。
配套实战环境与下一步学习
- 📘 完整排障 Playbook(节点/控制面/Pod/网络/存储七章):TROUBLESHOOTING_GUIDE.md
- 📓 图文排障笔记(含决策树与 kubeadm 迁移故障实战):study-notes/05-troubleshooting.md
- 🧪 本地实验集群:仓库提供 lab-setup/ 目录,内含 multipass、Vagrant 等多平台一键搭集群脚本,建议用 kind-cluster/multi-node.yaml 快速验证排障操作
- 📋 考试日流程与心态管理:EXAM_DAY_GUIDE.md 与 EXAM_TIPS.md
- 📖 官方考纲对照:SYLLABUS.md
✅一句话总结:CKA 排障 = 固定顺序(get → describe → logs → journalctl)+ 固定知识(Conditions、Exit Code、静态 Pod、crictl)。把这套 Playbook 练到肌肉记忆,30% 的分值就是你的了。
【免费下载链接】cka-certification-guide
This comprehensive CKA learning path repo equips aspiring Kubernetes administrators with all the knowledge and resources to ace the CKA exam on the first try. Includes in-depth explanations, hands-on labs, and valuable study materials. Pass the CKA and unlock your Kubernetes potential today!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考