logo

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 切换过去,然后完成任务。

不会敲命令 = 不会通过。就这么直接。

考试域权重

内容权重
集群架构集群安装与配置、RBAC25%
工作负载与调度Deployment、Pod 调度、资源限制15%
服务与网络Service、Ingress、NetworkPolicy、DNS20%
存储PV、PVC、StorageClass10%
故障排查节点问题、应用日志、集群组件排错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 runkubectl 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 logskubectl describekubectl get events

回头看,故障排查要多练。考试不会告诉你"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 文档(包括所有子页面)
  • 可以提前做好书签! 把常用文档页面收藏好,考试时一键打开

我的必备书签清单

  1. kubernetes.io/docs/reference/kubectl/cheatsheet/ — kubectl 速查表
  2. kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/ — 集群升级步骤
  3. kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/ — etcd 备份恢复
  4. kubernetes.io/docs/concepts/policy/network-policies/ — NetworkPolicy 示例
  5. kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ — 调度相关

终端环境

  • 基于 Ubuntu 的远程桌面
  • 自带 vimnano 编辑器
  • 支持复制粘贴(Ctrl+Shift+C / Ctrl+Shift+V)
  • 终端字体偏小,可以用 Ctrl++ 放大

Top 10 高频考点

根据我的考试经历和社区反馈,这些任务出现频率极高:

  1. etcd 备份与恢复 — 几乎必考。命令长,参数多,必须练熟
  2. 集群升级(kubeadm upgrade)— Control Plane 和 Worker Node 分别升级
  3. 创建 NetworkPolicy — 限制 Pod 的入站/出站流量
  4. RBAC 配置 — 创建 Role 和 RoleBinding,给特定用户分配权限
  5. 故障排查 NotReady 节点 — 通常是 kubelet 没启动或配置错误
  6. 创建 Ingress 资源 — 配置 path-based routing
  7. PV 和 PVC 绑定 — 注意 accessModes 和 storageClassName 要匹配
  8. Sidecar 容器 — 在已有 Pod 里加一个日志收集容器
  9. 节点 drain 和维护 — drain + upgrade + uncordon 的完整流程
  10. Pod 日志导出kubectl logs 输出到指定文件

考试时间管理

120 分钟,17 道题,平均每题 7 分钟。但实际上:

  • 简单题(kubectl 单条命令能解决的):2-3 分钟
  • 中等题(需要写 YAML 或多步操作):5-8 分钟
  • 难题(etcd 恢复、集群升级、复杂故障排查):10-15 分钟

我的策略

  1. 第一遍(80 分钟):先扫一遍所有题。会做的直接做,不确定的 flag 标记跳过
  2. 第二遍(30 分钟):回头做标记的题
  3. 第三遍(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 天后的你会感谢现在的自己。

CKA 考试经验分享:30天通过 Kubernetes 管理员认证

JR Academycertification

从零到通过 CKA 认证的 30 天备考经验。包含每周学习计划、实操练习策略、考试环境说明和高频考点总结。

CKA 30天通过攻略
CKAKubernetesCNCF备考攻略

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 切换过去,然后完成任务。

不会敲命令 = 不会通过。就这么直接。

考试域权重

内容权重
集群架构集群安装与配置、RBAC25%
工作负载与调度Deployment、Pod 调度、资源限制15%
服务与网络Service、Ingress、NetworkPolicy、DNS20%
存储PV、PVC、StorageClass10%
故障排查节点问题、应用日志、集群组件排错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 runkubectl 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 logskubectl describekubectl get events

回头看,故障排查要多练。考试不会告诉你"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 系统
    • 保持冷静,先做会做的

必须练到肌肉记忆的命令

这些命令考试中会反复用到,必须闭着眼睛都能敲出来:

BASH
# 快速创建资源(--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>

省时技巧:在考试一开始就设置别名:

BASH
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 文档(包括所有子页面)
  • 可以提前做好书签! 把常用文档页面收藏好,考试时一键打开

我的必备书签清单

  1. kubernetes.io/docs/reference/kubectl/cheatsheet/ — kubectl 速查表
  2. kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/ — 集群升级步骤
  3. kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/ — etcd 备份恢复
  4. kubernetes.io/docs/concepts/policy/network-policies/ — NetworkPolicy 示例
  5. kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ — 调度相关

终端环境

  • 基于 Ubuntu 的远程桌面
  • 自带 vimnano 编辑器
  • 支持复制粘贴(Ctrl+Shift+C / Ctrl+Shift+V)
  • 终端字体偏小,可以用 Ctrl++ 放大

Top 10 高频考点

根据我的考试经历和社区反馈,这些任务出现频率极高:

  1. etcd 备份与恢复 — 几乎必考。命令长,参数多,必须练熟
  2. 集群升级(kubeadm upgrade)— Control Plane 和 Worker Node 分别升级
  3. 创建 NetworkPolicy — 限制 Pod 的入站/出站流量
  4. RBAC 配置 — 创建 Role 和 RoleBinding,给特定用户分配权限
  5. 故障排查 NotReady 节点 — 通常是 kubelet 没启动或配置错误
  6. 创建 Ingress 资源 — 配置 path-based routing
  7. PV 和 PVC 绑定 — 注意 accessModes 和 storageClassName 要匹配
  8. Sidecar 容器 — 在已有 Pod 里加一个日志收集容器
  9. 节点 drain 和维护 — drain + upgrade + uncordon 的完整流程
  10. Pod 日志导出kubectl logs 输出到指定文件

考试时间管理

120 分钟,17 道题,平均每题 7 分钟。但实际上:

  • 简单题(kubectl 单条命令能解决的):2-3 分钟
  • 中等题(需要写 YAML 或多步操作):5-8 分钟
  • 难题(etcd 恢复、集群升级、复杂故障排查):10-15 分钟

我的策略

  1. 第一遍(80 分钟):先扫一遍所有题。会做的直接做,不确定的 flag 标记跳过
  2. 第二遍(30 分钟):回头做标记的题
  3. 第三遍(10 分钟):检查每道题是否切换了正确的 context

千万不要在一道题上死磕超过 15 分钟。 一道 4 分的题花了 20 分钟,不值得。先把简单分拿到手。

常见翻车点

1. 忘记切换 context

这是最愚蠢也最致命的错误。每道题开头都会写 kubectl config use-context xxx,一定要执行。我做到第 10 题的时候差点忘了,还好检查了一遍。

2. YAML 缩进错误

考试终端里用 vim 写 YAML,缩进全靠空格。建议在 ~/.vimrc 里加:

BASH
set tabstop=2
set shiftwidth=2
set expandtab

3. 没有验证结果

做完一道题不要急着下一题。花 30 秒验证:Pod 跑起来了吗?Service 能访问吗?RBAC 生效了吗?

BASH
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 天后的你会感谢现在的自己。