3 周刷完这套 CKAD 备考习题,我踩过的坑和节奏都写在这了
3 周刷完这套 CKAD 备考习题,我踩过的坑和节奏都写在这了
【免费下载链接】CKAD-exercisesA set of exercises to prepare for Certified Kubernetes Application Developer exam by Cloud Native Computing Foundation项目地址: https://gitcode.com/gh_mirrors/ck/CKAD-exercises
考试那天早上,我对着终端敲下第一条 kubectl 命令时,手是凉的。为了 CKAD 认证,我前后准备了大约三周,刷题的核心材料是一套开源的 Kubernetes 实战习题。倒不是它有多神,而是那 2 小时里,我发现自己居然没怎么慌。
那天早上,我的第一行 kubectl
考场只有一个浏览器窗口和一台虚拟机,浏览器里只能开 Kubernetes 官方文档,其余全关。我深吸一口气,先建命名空间,再跑 pod。
kubectl create namespace mynamespacekubectl run nginx --image=nginx --restart=Never -n mynamespace
这两行我闭着眼都能打出来,因为前三个星期里,我在本地的 kind 集群上把类似的命令敲了不下一百遍。后来我才明白,这套题的作者把每个练习都做成了"先读题、自己写、再展开答案对照"的格式——答案默认折叠在 show 里,不看一眼答案你就得自己硬写。这种别扭,恰恰是它最值钱的地方。
前两周,我其实在瞎忙
说实话,备考头两周我干了一堆蠢事:收藏了十几个视频课程,下载了厚厚的 PDF,笔记本抄了半本命令。结果一上虚拟机,全想不起来。
转折发生在一个周日的晚上。我翻到一个开源习题集,仓库名叫 CKAD-exercises,clone 下来一看,里面是十个按考试大纲排好的 markdown 文件:
git clone https://gitcode.com/gh_mirrors/ck/CKAD-exercises
没有花哨的界面,没有配套视频,就是题目和答案。但我盯了十分钟后意识到一件事:它的章节比例是照着考试大纲标的。a.core_concepts.md 标着 13%,c.pod_design.md 标着 20%,哪个章节值多少分,一眼就能算明白。于是我把之前那些收藏全部抛到脑后,决定只跟这套题走。
第一阶段,先把地基打实
头三天我只碰一个文件:a.core_concepts.md。
里面第一题就是建命名空间、跑 nginx pod,很简单,但我在这章学到了真正救命的东西——用--dry-run=client -o yaml生成 YAML。题目让"写出这个 pod 的 YAML 配置",我当时手写了个 20 行的配置,缩进错了三处。而作者给的答案只有一行:
kubectl run nginx --image=nginx --restart=Never --dry-run=client -n mynamespace -o yaml > pod.yaml
考场上时间按分钟算,手写 YAML 是自杀行为,让 kubectl 帮你生成才是正路。这个观念,就是从这章第一题开始的。
第二阶段,我连着刷了两周
基础打完后,我把重心放到 c.pod_design.md(20%)和 d.configuration.md(18%)上,这两章加起来占了近四成分数,绕不开。
有个细节印象特别深:c.pod_design.md 里有一题,让建三个带标签的 pod,app=v1。作者给的答案里有个 for 循环,一行搞定三兄弟。我当时手打三遍,第三遍还敲错了名字。从此我养成了一个习惯:凡是重复性操作,先想能不能用循环。
真正卡住我的,是 e.observability.md 的第一题——给 nginx pod 配一个 liveness probe,探针只要执行ls命令就行。听起来简单,但我当时完全搞不清 liveness、readiness、startup 三种探针分别什么时候触发,YAML 里缩进又错,pod 一直 CrashLoopBackOff。这题我磨了一整个晚上,最后是点开答案,对照着官方文档那一行行读下来的。
这里得说句实在话:这套题每道题上方都留了一行 kubernetes.io 的文档路径,作者管这叫 breadcrumb,意思是让你顺着它去翻官方文档。考试时你能开的只有官方文档,所以平时就按这个节奏练,考场上查东西会快很多。这是我在这个阶段悟到的最重要的事。
第三阶段,把自己当考生
最后一周,我不再分章节刷,而是把 f.services.md、g.state.md、h.helm.md、i.crd.md 这些偏门章节扫完,然后开始限时模拟。
方法很简单:定 2 小时闹钟,随机从十个文件里抽 15 道题,不许翻笔记,只许查官方文档。第一次模拟我超时了 40 分钟,第二次还是超时。真正让我提速的是一条笨办法——每道题做完,必须用kubectl get或kubectl describe验证一遍,确认 pod Running、service 有 Endpoints,再进下一题。
别小看这一步。考试丢分最冤的不是不会做,而是做完了不检查,最后发现 pod 根本没起来。
最容易翻车的几个点
说几个我亲眼见过的翻车现场,全是用反面例子换来的教训:
用 tab 缩进 YAML。编辑器里看起来对齐了,kubectl apply 直接报did not find expected key。记住,YAML 只认空格,不认 tab。
不看题目里的 namespace。题目写着"建在 mynamespace 里",你图省事建到 default,整道题白做,还得删了重来。
只刷热门章节。我把 b.multi_container_pods.md 跳过了,觉得多容器 pod 不会考。结果模拟题里偏偏有一道 sidecar 的题,我当场愣住。分数再低的章节,也值得过一遍。
做完不验证就交。上面说过了,这大概是丢分最多的一类。
忘记默认值。kubectl run某些写法默认生成的是 Deployment 而不是 Pod,pod 会被反复重启。看到 CrashLoopBackOff 先别急着删,先kubectl logs看一眼。
我最后一周的节奏表
如果你只有一周,可以照这个走,我把文件也标出来了:
| 星期 | 内容 | 备注 |
|---|---|---|
| 周一 | a.core_concepts.md 全部,重做错题 | 顺带练--dry-run=client -o yaml |
| 周二 | b.multi_container_pods.md + c.pod_design.md 前半(标签、Deployment) | 循环、滚动更新是重点 |
| 周三 | c.pod_design.md 后半(Job、CronJob)+ d.configuration.md 前半(ConfigMap、Secret) | 这两块最容易被考倒 |
| 周四 | d.configuration.md 后半 + e.observability.md | 探针三兄弟放一起记 |
| 周五 | f.services.md + g.state.md | Service 类型、PV/PVC 各过一遍 |
| 周六 | h.helm.md + i.crd.md,把错题全部重做 | j.podman.md 有余力再看 |
| 周日 | 2 小时限时模拟,只准查官方文档 | 目标不是做完,是不慌 |
考完一个月后,我想说句实话
现在回想起来,这套 Kubernetes 实战习题不会让你一夜之间变成专家,它也不是什么神秘资料。它给到我的,其实是一套固定的做题流程:先读题,圈出 namespace 和资源类型,用 kubectl 生成 YAML,apply,最后验证。三周刷下来,这个流程变成了本能。
考试那天真正值钱的,不是哪条具体命令,而是那份不慌。如果你也在准备 CKAD 认证,别囤资料了,打开这个仓库,从第一题开始写。写完最后一题再回头看,你会发现自己已经能独立处理大多数考点了。
用一句大白话收尾:刷题这件事,动手永远比收藏管用。
【免费下载链接】CKAD-exercisesA set of exercises to prepare for Certified Kubernetes Application Developer exam by Cloud Native Computing Foundation项目地址: https://gitcode.com/gh_mirrors/ck/CKAD-exercises
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
