技术博客

CKA 认证备考指南:从零到通过考试的完整学习计划与实操技巧

CKA(Certified Kubernetes Administrator)是 2026 年云原生方向含金量最高的证书之一,也是大专生突破学历门槛的有效手段。本文提供完整的 CKA 备考指南:考试形式详解(实操不是选择题)、4 周备考计划、必考知识点清单、最推荐的练习平台(killer.sh)、考试当天的操作技巧(kubectl alias/vim 配置/快速查文档),以及常见陷阱和失分点分析。

CKAKubernetes认证备考学习路线云原生证书大专生

CKA(Certified Kubernetes Administrator,Kubernetes 管理员认证)是 CNCF(云原生计算基金会)官方认证,也是目前国内外认可度最高的 Kubernetes 证书。

对大专生来说,CKA 的价值不只是“多一个证书”——它是可以量化证明你 K8s 能力的凭证,在简历上能直接降低 HR 对学历的关注度。


CKA 考试基本信息

考试形式:纯实操(在真实 K8s 集群上完成任务)
          不是选择题!不是背知识点!
          
考试时长:2 小时
题目数量:约 17 道题
通过分数:66 分(满分 100)
考试语言:英文界面(题目有中文翻译选项,2024 年后支持)
考试费用:$395(约 2800 元人民币)
          → 购买时经常有折扣(Black Friday 等节假日 50% off)
有效期:  3 年(3 年后需要重新认证)

考试环境:
  在浏览器内通过 PSI 平台远程考试
  考试时可以访问 kubernetes.io 官方文档
  不能访问其他网站
  需要摄像头和麦克风(全程监考)

考试前的准备(4 周备考计划)

前提:这些你需要已经会

CKA 不是入门课,备考前应该已经:
  □ 能手动搭建 K8s 集群(kubeadm 方式)
  □ 熟悉 Pod/Deployment/Service/Ingress 基本操作
  □ 能用 kubectl 排查基础问题(logs/describe/exec)
  □ 了解 PV/PVC 存储概念
  □ 基本的 YAML 语法
  
如果以上有不会的,先把基础补齐再买考试券。

第 1 周:核心知识梳理

每天 3-4 小时,专注以下主题:

Day 1-2:集群架构和组件
  etcd 备份和恢复(必考!每次考试几乎都有)
  kubeadm 安装和升级集群
  控制平面组件(apiserver/scheduler/controller-manager)

Day 3-4:工作负载管理
  Deployment 滚动更新和回滚
  ConfigMap 和 Secret 的创建和使用
  Pod 调度(nodeSelector/affinity/taint+toleration)
  静态 Pod(在 /etc/kubernetes/manifests/)

Day 5-7:服务和网络
  Service 类型(ClusterIP/NodePort/LoadBalancer)
  Ingress 配置
  NetworkPolicy(限制 Pod 间通信)
  DNS 排查(nslookup 在容器内的使用)

第 2 周:进阶主题

Day 8-10:存储
  PersistentVolume 和 PersistentVolumeClaim
  StorageClass(动态供应)
  卷挂载和权限

Day 11-12:RBAC
  Role 和 ClusterRole
  RoleBinding 和 ClusterRoleBinding
  ServiceAccount(常考:给 Pod 绑定特定 ServiceAccount)

Day 13-14:集群维护
  节点维护(drain/cordon/uncordon)
  etcd 备份和恢复(重要!单独专项练习)
  kubeadm upgrade(集群升级流程)

第 3 周:刷题练习

核心练习平台:
  Killer.sh(https://killer.sh)
  → 购买 CKA 考试时赠送 2 次 killer.sh 练习机会
  → 题目难度比真实考试略高,通过率高的话考试基本稳了
  
  KodeKloud(https://kodekloud.com)
  → 有大量交互式实验,适合初学阶段
  
练习重点:
  每道错题找到根本原因(而不是记住答案)
  计时练习(确保 17 道题在 2 小时内完成)
  反复练习 etcd 备份恢复(muscle memory)

第 4 周:冲刺和收尾

Day 22-25:模拟考试
  完整的 2 小时限时模拟(killer.sh 完整练习)
  达到 80 分以上才考虑参加正式考试

Day 26-28:查漏补缺
  回顾所有错题
  整理速查命令(考试时可以直接看)

考前 1 天:
  休息,不要再学新内容
  确认考试环境(摄像头/网络/环境清洁)
  熟悉 kubernetes.io 文档结构

必考知识点精华

1. 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

# 验证备份
ETCDCTL_API=3 etcdctl snapshot status /tmp/etcd-backup.db --write-out=table

# 恢复
ETCDCTL_API=3 etcdctl snapshot restore /tmp/etcd-backup.db \
    --data-dir=/var/lib/etcd-restore

# 修改 etcd Pod 配置使用新目录
vi /etc/kubernetes/manifests/etcd.yaml
# 找到 --data-dir 和 volumes hostPath,改为 /var/lib/etcd-restore

2. 节点维护(drain/cordon)

# 将节点标记为不可调度(已有 Pod 不受影响)
kubectl cordon node-01

# 驱逐节点上所有 Pod(使节点可维护)
kubectl drain node-01 --ignore-daemonsets --delete-emptydir-data

# 维护完成,恢复节点
kubectl uncordon node-01

3. RBAC 创建(常考)

# 创建 Role:只能查看 default 命名空间的 Pod
kubectl create role pod-reader \
    --verb=get,list,watch \
    --resource=pods \
    --namespace=default

# 创建 ServiceAccount
kubectl create serviceaccount my-sa -n default

# 绑定 Role 到 ServiceAccount
kubectl create rolebinding pod-reader-binding \
    --role=pod-reader \
    --serviceaccount=default:my-sa \
    --namespace=default

# 验证权限
kubectl auth can-i list pods --as=system:serviceaccount:default:my-sa
# yes

4. NetworkPolicy(限制网络访问)

# 只允许带 app=api 标签的 Pod 访问数据库 Pod
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: db-access-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: db          # 这个策略应用于 app=db 的 Pod
  policyTypes:
  - Ingress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: api     # 只允许 app=api 的 Pod 访问
    ports:
    - protocol: TCP
      port: 5432

5. PV/PVC(存储)

# 创建 PersistentVolume
apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-pv
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /data/my-pv

---
# 创建 PersistentVolumeClaim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

考试当天的操作技巧

考试开始前必做的设置(前 3 分钟)

# 1. 设置 kubectl alias(节省大量打字时间)
alias k=kubectl
export do='--dry-run=client -o yaml'

# 2. 配置 vim(K8s YAML 必须用 2 空格缩进)
cat >> ~/.vimrc << 'EOF'
set tabstop=2
set shiftwidth=2
set expandtab
EOF

# 3. 开启 kubectl 自动补全
source <(kubectl completion bash)
complete -F __start_kubectl k

# 4. 查看当前 context(确认操作的集群正确)
kubectl config get-contexts
kubectl config current-context

使用 dry-run 快速生成 YAML

# 不要手写 YAML!用命令生成

# 生成 Deployment YAML
kubectl create deployment nginx --image=nginx:alpine --replicas=3 $do > deploy.yaml

# 生成 Service YAML
kubectl expose deployment nginx --port=80 --type=ClusterIP $do > svc.yaml

# 生成 ConfigMap YAML
kubectl create configmap my-config --from-literal=key1=value1 $do > cm.yaml

# 生成 Secret YAML
kubectl create secret generic my-secret --from-literal=password=mysecret $do > secret.yaml

# 编辑后应用
vi deploy.yaml
kubectl apply -f deploy.yaml

查文档的效率技巧

考试时可以访问 kubernetes.io/docs

高效查文档的方法:
  1. 记住常用页面路径(不要每次从首页找)
     
     etcd 备份:
     kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/
     
     NetworkPolicy:
     kubernetes.io/docs/concepts/services-networking/network-policies/
     
     RBAC:
     kubernetes.io/docs/reference/access-authn-authz/rbac/
  
  2. 在文档页面用 Ctrl+F 搜索关键词
     找到对应的 YAML 示例,复制后修改
  
  3. kubectl explain 快速查字段
     kubectl explain pod.spec.containers
     kubectl explain networkpolicy.spec.podSelector

时间分配建议

2 小时 17 道题,平均每题 7 分钟

分配策略:
  先看所有题目,估计难度
  简单题(会的):先快速做完
  中等题:认真做,不超过 10 分钟
  难题(不确定的):先标记跳过,最后回来

时间预警:
  60 分钟:应完成 8-10 道题
  90 分钟:应完成 13-15 道题
  最后 30 分钟:完成剩余题目或检查

注意:验证答案很重要!
  每道题做完,用 kubectl get/describe 验证结果
  宁可少做一道题,也要确保做的题目都对

常见失分点

1. 忘记切换 kubectl context
   很多题目要求在特定集群操作
   不切换 context 就做题 → 操作了错误的集群
   → 每道题开始前:kubectl config use-context <context-name>

2. 命名空间错误
   题目指定在 kube-system 命名空间,你在 default 做了
   → 养成习惯:-n <namespace> 明确指定

3. YAML 缩进错误
   K8s YAML 对缩进极度敏感
   → 用 vim 的自动缩进 + kubectl apply 测试

4. etcd 证书路径搞错
   不同集群的证书可能在不同路径
   → 考试前用 kubectl describe pod etcd -n kube-system 确认实际路径

5. 时间耗尽
   在一道难题上卡太久
   → 果断跳过,先拿确定分数的题

备考资源推荐

练习环境:
  Killer.sh(https://killer.sh)           最接近真实考试
  KodeKloud CKA 课程                        系统学习+实验
  本地 minikube / k3s                       日常练习

学习资料:
  官方文档(kubernetes.io/docs)            考试时可用,平时要熟悉
  《Kubernetes in Action》                  深度理解原理
  Mumshad Mannambeth 的 Udemy CKA 课程     视频课,适合初学

中文资源:
  本站 Kubernetes 系列文章(陆续更新)
  极客时间《深入剖析Kubernetes》

小结

CKA 考试的核心是真实操作能力,不是背题库。通过了 CKA,说明你真的能管 K8s 集群,而不只是知道理论。

对大专生来说,CKA 是性价比最高的投资之一:备考过程能系统提升 K8s 技能,通过后简历立刻有了一个硬指标。在武汉求职 K8s 相关岗位,有 CKA 能多拿到 20-30% 的面试邀请。

认真备考 2-3 个月,通过率完全可以保证。加油。