CKA备考全攻略:真实集群实操、高频考题与考场细节
这两年问我CKA值不值得考的人越来越多。我的回答一直很直接如果你日常工作要碰 Kubernetes这个证书值得拿但别把它当成背题考试。备考过程会把集群架构、调度、存储、网络、安全这些平时容易忽略的角落逼着你全部过一遍这才是它最值钱的地方。今天我把自己从准备到走出考场的手记整理出来重点说三件事CKA 到底考什么、怎么练最有效、考场上那些不写进官方手册的细节如何帮你多拿分。先给没接触过的朋友交个底CKA 是 Kubernetes 管理员认证全程在真实集群里敲命令完成任务不是选择题。考试时间 120 分钟一般 17 道题左右67% 及格。很多人觉得它难其实难的不是知识点而是不习惯“真实环境做题”的节奏。这篇文章适合所有准备报考的人无论你是刚入行还是已经在维护生产集群只要按照我下面的思路来基本都能稳过。1. CKA到底考什么先搞清楚考试形态再谈备考1.1 考试形态你面对的是真实集群不是答题卡CKA 的考试环境和大家熟悉的在线答题完全不一样。你会在浏览器里进入一个远程桌面桌面里有终端、文件管理器和预装好的一组 Kubernetes 集群。每道题要求你在指定集群中用 kubectl 或者集群管理命令完成一个任务比如“初始化一个集群”“把某个 Deployment 滚动更新到指定镜像”“给某个命名空间创建一个 NetworkPolicy”。评分看的是最终集群状态。Pod 有没有 RunningService 能不能连通etcd 快照文件有没有出现在指定路径这些是评分依据。过程用了几条命令、走了什么弯路完全不影响结果。这就要求你答题时目标非常明确题目要求什么状态就把集群改到什么状态不做多余动作。最容易被忽略的是 context 机制。考试环境里有多个集群每道题第一行通常都给出切换命令类似kubectl config use-context k8s-xxx。不切换直接在当前集群上操作动作很可能落到错误的集群上一分都拿不到。我见过太多人栽在这里题目做完了自我感觉良好实际全部白做。所以拿到题第一件事永远是检查 context哪怕你觉得当前集群就是对的也要先执行一遍切换命令形成肌肉记忆。1.2 能力模块与权重官方大纲到底划了哪些范围根据官方考试大纲CKA 的知识体系主要分为五大块集群架构安装与配置、工作负载与调度、服务与网络、存储、故障排查。下面的表格把每一块的考察重点整理出来了建议备考时按这个表格检查自己的知识盲区知识模块大致权重关键能力集群架构、安装与配置25% 左右kubeadm 部署与升级、etcd 备份恢复、kubeconfig 管理、节点管理、RBAC、安全上下文工作负载与调度15% 左右Deployment/StatefulSet/CronJob、扩缩容与滚动更新、污点/容忍、nodeSelector 与节点亲和服务与网络20% 左右Service 类型、Ingress、NetworkPolicy、DNS 与服务发现存储10% 左右PV/PVC/StorageClass、动态供给、存储挂载故障排查30% 左右查看日志与事件、排查调度失败、Service 不可访问、kubelet 异常、集群组件修复别看故障排查占比最高就只刷排查题它往往不是独立出现的。比如“节点上的 Pod 一直 Pending请排查并修复”表面考调度实际上也要你用kubectl describe看事件、用kubectl get nodes检查节点状态。所以复习时要把每个模块都按“如果它坏了我从哪几个命令开始查”的思路过一遍这才是把知识变成能力的正确姿势。2. 备考路线与实战环境没有可敲的集群一切都是空谈2.1 本地仿真环境怎么搭优先 kubeadm 加虚拟机CKA 备考至少要有一套能反复操作的学习环境。最常见的方案是自己搭一个 kubeadm 集群有条件就用三台虚拟机模拟一主两从条件有限就在单机上用 kind 或者 minikube。但我强烈建议只要你时间允许优先选 kubeadm 加虚拟机这条路。原因是 CKA 考试里有一类题只有 kubeadm 流程练得到比如集群初始化、工作节点加入、集群升级。minikube 和 kind 把这些步骤都封装掉了你练的时候很爽考场上却完全不会操作。我备考时用 Ubuntu 虚拟机搭环境先装 containerd再装 kubeadm、kubelet、kubectl最后装一个 CNI 插件。多练几遍自然就理解了初始化参数的意义比如--pod-network-cidr为什么必须和 CNI 插件的默认网段保持一致--apiserver-advertise-address什么时候需要显式指定。还有一件事必须在平时就养成习惯kubectl 自动补全和别名。考试终端支持命令行补全但前提是你知道要 source 哪个文件。建议把这些写进 shell 配置文件alias kkubectl source (kubectl completion bash) complete -F __start_kubectl k这看起来不起眼但考场上输入速度就是得分速度。17 道题平均每道只有 7 分钟左右很多命令带一长串参数一个字符打错就得重来。补全和别名省下的时间足够你多检查两道题。别把这点时间浪费在敲错命令上。2.2 时间安排三轮复习法第三轮专攻错题备考周期控制在 4 到 6 周比较合理太长容易泄气太短练不透。第一轮花两周按官方大纲把每个模块系统性做一遍不求速度重点是理解对象之间的关系。比如 Deployment 通过 ReplicaSet 管理 PodService 靠 selector 匹配 Pod labelPV 和 PVC 靠 storageClassName 绑定。这些关系理不清后面做题很容易出低级错误。第二轮再花两周每天做一套模拟题严格限时。做完必须复盘把每道题的考点、命令、检查方式都过一遍。第三轮一周专攻错题和不熟的命令。特别是 etcd 备份恢复、集群升级这类低频高价值题目考前一两天必须再手敲一遍。做题笔记我建议用四列格式记录现象、原因、命令、检查点。比如“Service 无法访问原因是 selector 写错 label检查命令是 kubectl get endpoints 和 kubectl describe svc”。考前翻这个文件比翻教程高效得多因为它是针对你自己弱点的浓缩。3. 高频考题场景与核心实操要点按题型逐个击破3.1 集群初始化、升级与 etcd 备份恢复重头戏中的重头戏kubeadm 初始化集群是常考题型。基本流程并不复杂控制平面节点上执行kubeadm init成功后按提示配置 kubeconfig工作节点上用kubeadm join加入。考试时不会直接给你 join 命令要求你自己到控制平面节点上生成。如果你忘了怎么生成可以用kubeadm token create --print-join-command这条命令会打印出一行完整的 join 命令复制到工作节点执行即可。注意 token 有效期如果创建后隔太久才执行可能已经过期重新生成一次就行。集群升级题更考验操作顺序。大致步骤是先升级 kubeadm再kubeadm upgrade apply升级控制平面接着一台一台升级 kubelet最后升级 kubectl。升级节点前必须 drain 或 cordon把工作负载迁走升级完成后记得 uncordon。我见过有人把节点 drain 了却忘了 uncordon结果节点一直是不可调度状态Pod 全都起不来考完还根本想不起来问题出在哪。etcd 备份恢复是必练项目也是最容易紧张的一道题。现在考试环境基本都是 etcd v3所以命令要带ETCDCTL_API3同时必须指定 endpoint 和证书。一个典型备份命令长这样ETCDCTL_API3 etcdctl --endpoints127.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 \ snapshot save /tmp/etcd-snapshot.db恢复时先停掉 etcd 相关静态 Pod把快照 restore 到新目录再修改 etcd 的数据目录配置最后启动。这里最坑的地方是证书路径和>