CKA 30 天备考计划:Kubernetes 管理员认证实操指南
按 CKA 官方考试域安排 30 天练习:集群维护、网络、存储与故障排查,并核对考试规则和可用文档。
目录
CKA 是两小时的线上实操考试,考生要在 Linux 终端中完成 Kubernetes 管理任务。下面的 30 天安排是一份练习计划,不代表零基础考生一定能在 30 天内通过;先用模拟任务检验自己能否独立完成操作,再决定考试日期。
考试版本、报名价格与规则会变化。本文核对了 Linux Foundation 的 CKA 官方页面、考生常见问题 和 考试允许使用的资源(2026-10-11);报考前请再次查看原文。
CKA vs CKAD vs CKS:先搞清楚考哪个
很多人在这三个认证之间犹豫,简单说:
| 认证 | 面向角色 | 侧重点 |
|---|---|---|
| CKA | 集群管理员 | 集群搭建、维护、网络、存储、故障排查 |
| CKAD | 应用开发者 | Pod 设计、部署、Service、配置管理 |
| CKS | 安全专家 | 集群安全、供应链安全、运行时安全 |
如果工作重点是集群运维与故障排查,可先看 CKA;如果主要编写和部署应用,可比较 CKAD。CKS 面向 Kubernetes 安全实践,报名前应核对其现行先修要求。
考试格式:你需要知道的一切
| 项目 | 详情 |
|---|---|
| 题目数量 | 15–20 个实操任务 |
| 考试时长 | 2 小时 |
| 及格分数 | 66% |
| 考试费用 | 以官方报名页实时价格及所选套餐为准;当前标准考试含一次补考 |
| 有效期 | 2 年(2024-04-01 前取得的部分证书原有效期为 3 年) |
| 考试形式 | 在线实操,真实 K8s 集群环境 |
| 可查文档 | 考试虚拟机浏览器内的指定官方文档,详见下文 |
| 考试平台 | PSI Secure Browser |
重点是 performance-based 考试:在远程 Linux 终端里操作 Kubernetes 环境。每道任务先确认题目指定的 context 和 namespace,再执行命令并验证结果。
不会敲命令 = 不会通过。就这么直接。
考试域权重
| 域 | 内容 | 权重 |
|---|---|---|
| 集群架构 | 集群安装与配置、RBAC | 25% |
| 工作负载与调度 | Deployment、Pod 调度、资源限制 | 15% |
| 服务与网络 | Service、Ingress、NetworkPolicy、DNS | 20% |
| 存储 | PV、PVC、StorageClass | 10% |
| 故障排查 | 节点问题、应用日志、集群组件排错 | 30% |
故障排查占 30%,是权重最大的一块。 练习时除了创建资源,还要能从事件、日志与节点状态定位问题。考试域和权重以 CNCF 当前 CKA 考纲 为准。
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:复习 + 整理笔记
每学完一个概念,就在练习集群里完成一次创建、查询和故障定位;只看视频无法检验操作能力。
第 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 挂了怎么办?
遇到节点
NotReady,先检查节点条件、事件和 kubelet 状态,再根据实际原因修复;不要预设每次都是 kubelet 故障。
第 4 周:冲刺模考(Day 22-30)
目标:模考、刷题、提速、查漏补缺
- Day 22-24:使用报名套餐包含的模拟器练习;官方说明标准 CKA 报名可使用两次 Killer.sh 模拟器,CKA-SINGLE 不包含
- 用模拟结果找出耗时最多、仍无法独立完成的任务
- 模拟分数不是正式考试通过率的保证
- 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>
省时技巧:在考试一开始就设置别名:
BASHalias k=kubectl export do="--dry-run=client -o yaml" # 之后用 k run nginx --image=nginx $do > pod.yaml在练习环境里试用这些别名,考试中是否采用取决于你对命令的熟悉程度。
考试环境实用技巧
PSI Secure Browser
- 需要提前下载安装 PSI 的考试浏览器
- 只能在考试虚拟机内使用允许的浏览器和终端;不要打开个人设备上的资料
- 虚拟机浏览器允许访问 Kubernetes 文档与博客、Helm 文档,以及 CKA 的 Gateway API 文档;任务快速参考区可能另给链接
- 可以使用 Kubernetes 文档站内搜索,但不要打开外部搜索结果;以 官方允许资源清单 为准
考前可熟悉的官方文档
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++ 放大
10 个值得练习的任务类型
以下是基于考试域整理的练习任务,不代表真实考试题目或出现频率:
- etcd 备份与恢复 — 核对数据目录与静态 Pod 配置
- 集群升级(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 分钟,官方说明有 15–20 个实操任务。可在模考时试用以下时间分配,再按自己速度调整:
- 简单题(kubectl 单条命令能解决的):2-3 分钟
- 中等题(需要写 YAML 或多步操作):5-8 分钟
- 难题(etcd 恢复、集群升级、复杂故障排查):10-15 分钟
示例时间分配:
- 第一遍(80 分钟):先扫一遍所有题。会做的直接做,不确定的 flag 标记跳过
- 第二遍(30 分钟):回头做标记的题
- 第三遍(10 分钟):检查每道题是否切换了正确的 context
如果某道题长时间没有进展,先标记并完成其余可做的任务,最后再回来检查。
常见翻车点
1. 忘记切换 context
执行前确认题目要求的 context 与 namespace;操作完成后再次检查目标集群,避免在错误环境里提交答案。
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 恢复后忘了重启
恢复快照后还要核对 etcd 静态 Pod 使用的数据目录和启动参数;只生成恢复目录而不切换配置,不会让集群使用恢复后的数据。
5. NetworkPolicy 默认行为搞混
没有 NetworkPolicy 的时候,所有流量是允许的。一旦对一个 Pod 应用了任何 ingress 规则,未明确允许的入站流量就会被拒绝。
考完之后
考试结束后 24 小时内会收到邮件通知结果。通过了会在 Linux Foundation 的 portal 里看到电子证书和徽章。
现行 CKA 证书有效期为 2 年;2024-04-01 前取得的 CKA/CKAD 证书原有效期为 3 年。续期以 Linux Foundation FAQ 为准。
拿到 CKA 之后,可以考虑继续考 CKS(安全方向)或者 CKAD(如果日常开发用得多的话)。
开始你的 CKA 备考
30 天是练习安排,不是通过保证。完成模拟任务后再判断是否需要延长备考。
光看视频不敲命令,等于没学。
需要结构化练习时,可查看 JR Academy 的 CKA 学习目录。课程内容、访问权限和费用以该页面及结算时展示为准。
今天可以先在本地集群创建一个 Deployment,故意改错镜像名,再用 kubectl describe pod 和 kubectl get events 查出拉取失败的原因。