CKA 考试经验分享:30 天通过 Kubernetes 管理员认证
先说结论:CKA 不难,但它跟你考过的任何认证都不一样。
没有选择题。没有。全程实操,给你一个真实的 Kubernetes 集群,让你在终端里敲命令解决问题。准备好了吗?
我在 30 天内通过了 CKA,分数 89 分。这篇文章把我的备考过程、踩过的坑、以及所有实用的技巧都分享出来。希望能帮到正在准备的你。
CKA vs CKAD vs CKS:先搞清楚考哪个
很多人在这三个认证之间犹豫,简单说:
| 认证 | 面向角色 | 难度 | 侧重点 |
|---|---|---|---|
| CKA | 集群管理员 | ⭐⭐⭐ | 集群搭建、维护、网络、存储、故障排查 |
| CKAD | 应用开发者 | ⭐⭐ | Pod 设计、部署、Service、配置管理 |
| CKS | 安全专家 | ⭐⭐⭐⭐ | 集群安全、供应链安全、运行时安全 |
如果你只考一个,考 CKA。 它覆盖面最广,含金量最高,也是很多 DevOps 岗位的硬性要求。CKAD 相对简单但覆盖面窄,CKS 需要先有 CKA 基础。
我当时就是直接冲的 CKA,没有先考 CKAD。回头看,这个决定是对的。
考试格式:你需要知道的一切
| 项目 | 详情 |
|---|---|
| 题目数量 | 15-20 个实操任务(通常 17 个) |
| 考试时长 | 2 小时 |
| 及格分数 | 66% |
| 考试费用 | $395 USD(含一次免费重考) |
| 有效期 | 3 年 |
| 考试形式 | 在线实操,真实 K8s 集群环境 |
| 可查文档 | kubernetes.io 官方文档(考试中可打开) |
| 考试平台 | PSI Secure Browser |
重点强调一下:这是 performance-based 考试。你在一个真实的 Linux 终端里操作多个 Kubernetes 集群。每道题会告诉你用哪个 context,你需要 kubectl config use-context 切换过去,然后完成任务。
不会敲命令 = 不会通过。就这么直接。
考试域权重
| 域 | 内容 | 权重 |
|---|---|---|
| 集群架构 | 集群安装与配置、RBAC | 25% |
| 工作负载与调度 | Deployment、Pod 调度、资源限制 | 15% |
| 服务与网络 | Service、Ingress、NetworkPolicy、DNS | 20% |
| 存储 | PV、PVC、StorageClass | 10% |
| 故障排查 | 节点问题、应用日志、集群组件排错 | 30% |
故障排查占 30%,是最大的一块。 这也是很多人翻车的地方——平时只会 kubectl apply,遇到集群挂了就懵了。
30 天备考计划
第 1 周:打地基(Day 1-7)
目标:理解 K8s 核心架构,能用 kubectl 做基本操作
每天投入 2-3 小时。这周不需要碰考试题,纯粹打基础。
- Day 1-2:K8s 架构全景
- Control Plane 组件:kube-apiserver、etcd、kube-scheduler、kube-controller-manager
- Node 组件:kubelet、kube-proxy、container runtime
- 用 kubeadm 搭一个本地集群(或用 minikube / kind)
- Day 3-4:Pod 和 Deployment
- 手写 Pod YAML(不要每次都 copy 文档)
kubectl run、kubectl create deployment的速记用法- Label、Selector、Annotation
- Day 5-6:Service 与基础网络
- ClusterIP、NodePort、LoadBalancer 的区别
kubectl expose快速创建 Service- CoreDNS 基础
- Day 7:复习 + 整理笔记
我踩过的坑:第一周我花了太多时间看视频,动手太少。CKA 备考的黄金比例是 30% 理论 + 70% 实操。
第 2 周:核心技能(Day 8-14)
目标:掌握 RBAC、存储、调度,能快速写 YAML
- Day 8-9:RBAC
- Role / ClusterRole / RoleBinding / ClusterRoleBinding
- ServiceAccount 的用法
kubectl auth can-i验证权限
- Day 10-11:存储
- PersistentVolume 和 PersistentVolumeClaim
- StorageClass 和动态供给
- hostPath、emptyDir 的使用场景
- Day 12-13:调度
- nodeSelector、nodeAffinity、podAffinity
- Taint 和 Toleration
- 手动调度(指定 nodeName)
- Static Pod(kubelet 管理的 Pod)
- Day 14:综合练习 + 查漏补缺
第 3 周:进阶 + 故障排查(Day 15-21)
目标:集群升级、备份恢复、NetworkPolicy、故障排查
这周是关键。难度陡增。
- Day 15-16:集群维护
kubeadm upgrade升级集群(必考!)- etcd 备份与恢复(
etcdctl snapshot save/restore) - 节点 drain 和 cordon
- Day 17-18:网络策略
- NetworkPolicy 的 YAML 结构
- Ingress / Egress 规则
- 默认拒绝所有流量的策略怎么写
- Day 19-21:故障排查
- kubelet 挂了怎么办?
systemctl status kubelet、查日志 - Pod CrashLoopBackOff 排查流程
- kube-apiserver 证书过期的处理
kubectl logs、kubectl describe、kubectl get events
- kubelet 挂了怎么办?
回头看,故障排查要多练。考试不会告诉你"kubelet 挂了",它只会说"节点 NotReady,请修复"。你需要自己判断问题在哪里。
第 4 周:冲刺模考(Day 22-30)
目标:模考、刷题、提速、查漏补缺
- Day 22-24:做 killer.sh 模考(购买 CKA 考试会免费送两次)
- killer.sh 比真实考试难 30-40%。别被分数打击到。
- 60% 以上就说明你准备得差不多了
- Day 25-27:针对弱项专项练习
- 把 killer.sh 错的题归类,逐个突破
- 重点练速度:同一个任务反复做,直到肌肉记忆
- Day 28-29:最后模考 + 整理速查表
- 常用命令的速记写在纸上(考试时脑子可能一片空白)
- 再做一遍 killer.sh 第二次机会
- Day 30:考试日
- 提前 30 分钟进入 PSI 系统
- 保持冷静,先做会做的
必须练到肌肉记忆的命令
这些命令考试中会反复用到,必须闭着眼睛都能敲出来:
# 快速创建资源(--dry-run 生成 YAML 再修改)
kubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yaml
kubectl create deployment myapp --image=nginx --replicas=3 --dry-run=client -o yaml > deploy.yaml
kubectl expose deployment myapp --port=80 --target-port=8080 --type=NodePort --dry-run=client -o yaml > svc.yaml
# 必会的速记
kubectl get pods -A # 所有 namespace 的 Pod
kubectl get pods -o wide # 看 Node 和 IP
kubectl describe pod <name> # 排查第一步
kubectl logs <pod> -c <container> # 多容器要指定
kubectl exec -it <pod> -- /bin/sh # 进入容器
# RBAC
kubectl create role pod-reader --verb=get,list,watch --resource=pods
kubectl create rolebinding bob-reader --role=pod-reader --user=bob
# 集群维护
kubectl drain <node> --ignore-daemonsets --delete-emptydir-data
kubectl cordon <node>
kubectl uncordon <node>
# etcd 备份
ETCDCTL_API=3 etcdctl snapshot save /tmp/etcd-backup.db \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key
# context 切换(每道题都要做)
kubectl config use-context <context-name>
省时技巧:在考试一开始就设置别名:
alias k=kubectl export do="--dry-run=client -o yaml" # 之后用 k run nginx --image=nginx $do > pod.yaml这能帮你每道题省 10-15 秒。17 道题下来就是好几分钟。
考试环境实用技巧
PSI Secure Browser
- 需要提前下载安装 PSI 的考试浏览器
- 考试时只能打开考试终端和一个浏览器标签
- 浏览器里只允许访问 kubernetes.io 文档(包括所有子页面)
- 可以提前做好书签! 把常用文档页面收藏好,考试时一键打开
我的必备书签清单
kubernetes.io/docs/reference/kubectl/cheatsheet/— kubectl 速查表kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/— 集群升级步骤kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/— etcd 备份恢复kubernetes.io/docs/concepts/policy/network-policies/— NetworkPolicy 示例kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/— 调度相关
终端环境
- 基于 Ubuntu 的远程桌面
- 自带
vim和nano编辑器 - 支持复制粘贴(Ctrl+Shift+C / Ctrl+Shift+V)
- 终端字体偏小,可以用 Ctrl++ 放大
Top 10 高频考点
根据我的考试经历和社区反馈,这些任务出现频率极高:
- etcd 备份与恢复 — 几乎必考。命令长,参数多,必须练熟
- 集群升级(kubeadm upgrade)— Control Plane 和 Worker Node 分别升级
- 创建 NetworkPolicy — 限制 Pod 的入站/出站流量
- RBAC 配置 — 创建 Role 和 RoleBinding,给特定用户分配权限
- 故障排查 NotReady 节点 — 通常是 kubelet 没启动或配置错误
- 创建 Ingress 资源 — 配置 path-based routing
- PV 和 PVC 绑定 — 注意 accessModes 和 storageClassName 要匹配
- Sidecar 容器 — 在已有 Pod 里加一个日志收集容器
- 节点 drain 和维护 — drain + upgrade + uncordon 的完整流程
- Pod 日志导出 —
kubectl logs输出到指定文件
考试时间管理
120 分钟,17 道题,平均每题 7 分钟。但实际上:
- 简单题(kubectl 单条命令能解决的):2-3 分钟
- 中等题(需要写 YAML 或多步操作):5-8 分钟
- 难题(etcd 恢复、集群升级、复杂故障排查):10-15 分钟
我的策略:
- 第一遍(80 分钟):先扫一遍所有题。会做的直接做,不确定的 flag 标记跳过
- 第二遍(30 分钟):回头做标记的题
- 第三遍(10 分钟):检查每道题是否切换了正确的 context
千万不要在一道题上死磕超过 15 分钟。 一道 4 分的题花了 20 分钟,不值得。先把简单分拿到手。
常见翻车点
1. 忘记切换 context
这是最愚蠢也最致命的错误。每道题开头都会写 kubectl config use-context xxx,一定要执行。我做到第 10 题的时候差点忘了,还好检查了一遍。
2. YAML 缩进错误
考试终端里用 vim 写 YAML,缩进全靠空格。建议在 ~/.vimrc 里加:
set tabstop=2
set shiftwidth=2
set expandtab
3. 没有验证结果
做完一道题不要急着下一题。花 30 秒验证:Pod 跑起来了吗?Service 能访问吗?RBAC 生效了吗?
kubectl get pods -n <namespace>
kubectl auth can-i get pods --as=<user>
kubectl exec -it <pod> -- curl <service-name>
4. etcd 恢复后忘了重启
etcdctl snapshot restore 之后,需要更新 etcd 的 --data-dir 并重启。很多人做了恢复但没改 manifest,功亏一篑。
5. NetworkPolicy 默认行为搞混
没有 NetworkPolicy 的时候,所有流量是允许的。一旦对一个 Pod 应用了任何 ingress 规则,未明确允许的入站流量就会被拒绝。
考完之后
考试结束后 24 小时内会收到邮件通知结果。通过了会在 Linux Foundation 的 portal 里看到电子证书和徽章。
CKA 证书有效期 3 年。到期前需要重新考试续期。
拿到 CKA 之后,可以考虑继续考 CKS(安全方向)或者 CKAD(如果日常开发用得多的话)。
开始你的 CKA 备考
30 天足够了。关键是每天都要动手练。
光看视频不敲命令,等于没学。
JR Academy 提供完整的 CKA 备考课程和模拟练习,涵盖所有考试域的实操训练和模拟环境。会员 $8/月,所有认证课程免费学,还有社区答疑和备考指导。
别等了,今天就开始搭集群。30 天后的你会感谢现在的自己。