前言
最近通过了CKAD认证考试,也算是填了一个去年底挖的坑。这一切要源于去年底圣诞的时候,Linux Fundation的认证考试打折,原价300刀的CKAD考试,打折下来只用花255刀,忍不住剁手了。
此认证费用,包括一年有效期内任意时间预约考试的机会,以及一次免费重考的机会。
本来想着有一年的时间备考和准备,买了之后拖延症又犯了,就一直没管它。直到最近,突然收到了Linux Fundation的邮件,提醒认证考试年底就要过期了,才想起来之前竟然还买了个这个认证,突然开始慌起来……
二话不说,立马着手开始备考,由于之前工作中也算用过Kubernetes,对其核心概念也有一个大致了解,从8月到现在,大概花了一个多月的时间来准备。最后,准备总算没白费,通过了这个认证考试。
本篇blog就介绍和分享一下CKAD认证备考的一些经验。
什么是CKAD考试
总的来说,CKA和CKAD是CNCF和Linux基金会联合推出的两个Kubernetes考试认证:
CKA: Kubernetes管理员认证(CKA)旨在确保认证持有者具备履行Kubernetes管理员职责的技能,知识和能力。 CKA认证可帮助经过认证的管理员在就业市场中快速建立自己的信誉和价值,并能帮助公司更快地雇用高质量的团队来支持他们的发展。
CKAD: Kubernetes应用程序开发人员认证(CKAD)旨在确保CKAD具备履行Kubernetes应用程序开发人员职责的技能,知识和能力。 经过认证的Kubernetes Application Developer可以定义应用程序资源并使用核心原语来构建,监视和排除Kubernetes中可伸缩应用程序和工具的故障。
就两种考试的定位而言,CKA更偏运维一些,CKAD更面向开发人员一些,所以我选择了CKAD认证。
考试内容与范围
CKA和CKAD的考试范围和比重,是直接公布在认证官网的。CKAD的考试范围和比重如下:
跟CKA的考试时间不一样,相比CKA的3小时时间,CKAD只有2小时。CKAD考试题目总共19道题,总分100分,66以上就算是通过了认证。
备考阶段
虽然之前工作中也有用到Kubernetes,为了让知识点覆盖更全面,我还订阅了KodeKloud的两个课程:
他们家的课程是订阅制的,最近疫情期间也打折,所以学完之后可以取消订阅。两个课程都带了在线的动手实验室,学过一个知识点过后,就可以立马去动手实验室操作,用以对知识的巩固加深,还不错哦!
最近还发现他们也把这个课程放到了Udemy,可以一次性购买: https://www.udemy.com/course/certified-kubernetes-application-developer/ 相对于订阅更划算一些。
和其他的一些认证考试不一样的地方在于:CKA和CKAD非常注重动手操作。考试题目并不是常规考试的判断题,选择题,问答题。所谓考试实际上就是在他们官方提供的Kubernetes环境中进行实际操作。所以备考的时候,需要对 kubectl
的一系列命令了如指掌。总的来说,多动手操作实验才是通过这门认证的最佳途径。
在GitHub上,有人为这个考试专门准备了一个动手实验题库: https://github.com/dgkanatsios/CKAD-exercises
在考试之前,我大概把里面每一个题目动手操作了5-6遍。最后要达到的目标,就是看到题目之后,能想到应该如何在Kubernetes上操作并实现题目要求,能做到了然于心才是最佳状态。
关于实验环境,推荐在本机安装运行 minikube 或者 k3s ,他们都是轻量级的Kubernetes实现,用来动手操作实验题目还是不错的。如果你实在懒得搭建本机环境,用网上现成的也有:
在操作一些比较复杂题目的时候,你甚至可以用上面那个”Play with Kubernetes”提供的免费资源,自己搭建一个Kubernetes集群进行演练。
考试预约与考前准备
在完成备考过后,可以真正的预约考试了。听说最近Linux Fundation还专门为中国准备了国内现场考点,国内考试可以去专门的考点上机操作完成。另外的方式就是在家或者在一个安静的地方在线参加考试。
对于在线考试,有考前检查和一系列的规定,可以去官网逐一阅读一下。大致说来,规定如下:
考试形式: 在线监控,需要共享桌面和摄像头。如果你的电脑外接了显示器,两个屏幕都得共享。另外,考试中只允许你的浏览器开两个窗口,一个是考试的界面,另外一个就是Kubernetes的官方文档界面。在考试中,遇到不会的配置项,是允许你去官方文档中查询的。
考试环境: 在一个密闭空间,例如书房、卧室、会议室等,电脑屏幕不能对着窗户,房间里除了考生不能存在第二个人,考试的桌面不能放其它东西,水杯也不行(透明的玻璃杯是可以的)。
考试时间及题目: CKA-3小时-24道题、CKAD-2小时-19道题,均为动手操作题。
选择考试时间: 由于监考官在美国,所以考试的时候别忘了选择一个跟你所在的时区最匹配的时间。我选择在了我所在时区的周五晚上9:30,考完大概晚上11:30。
电脑要求: Windows的电脑和Mac OS的电脑都可以。在考试前可以在这里 WebDelivery Compatibility Check 对你的电脑进行兼容性检测。
考试过程
关于时间管理
前面有介绍,CKAD的题目是19道,时间2小时,平均一道题能花的时间是6分钟左右,所以时间管理是非常重要的。19道题目的难度不一,有的简单有的复杂。对于一道题目,先看题,如果觉得没头绪,可以先标记这道题,直接跳过去做后面的题目。等19道题大致做过一遍之后,再回来看标记过的不会的题目。题目权重与优先级
每一道考试题目上会标注这道题目所占的分数比重,总分100分的题目,达到66分可以通过考试。所以,结合与时间管理的策略,整个考试可以并不按照题目的顺序来做题。我就是在考试开始的时候,直接先快速把19道题过一遍,把分值权重较高的题目先标记出来,优先做这些分值较高的题目,然后再做剩余的题目。注意考试场景的切换
所有的19道题目并不是在一个Kubernetes环境中设立的,这就涉及到需要在做题之前,先切换到对应Kubernetes的Context。每道题目前都有对Context进行说明和切换的要求,在做题前特别留意一下,确保是在正确的Kubernetes环境中操作即可考试界面语言的选择
由于是一个针对全世界开发者的考试,官方的考试界面也提供了多语言支持。为了避免翻译的偏差对题目的影响,我还是没选中文,选了英文。监考官的互动
考试的整个过程,除了共享你所有的桌面,还得开摄像头,也就是你只能被监考官通过视频进行监督,而你是看不到监考官长啥样的。整个过程与监考官的互动,是在一个Web弹出的聊天窗口中进行的。包括考前注意事项说明,以及考试过程中遇到问题,都可以通过这个聊天窗口跟考官互动。考官除了回答你跟考试过程相关的问题,还会在考试过程中进行随机抽查,比如要求你在考试过程中,把双手或者桌面通过摄像头给他看看,确保你没有作弊……
一些考试中争分夺秒的技巧
为
kubectl
设置 alias
考试的整个过程都是在Kubernetes中进行操作,所以kubectl
这个命令输入的频率那是相当高的。反复输入这么长的命令,实在是有点浪费时间,要知道在这2小时的考试过程中,时间就是一切。所以在开始考试之初,我就在考试环境中为kubectl
设置了alias。比如alias kc=kubectl
或者alias k=kubectl
。后面所有输入kubectl
的地方,都可以用kc
或者k
替代,能为你节省不少时间。熟练操作kubectl命令
kubectl
能操作和创建的资源有很多,在考试过程中,能不用YAML来创建资源就尽量不用。因为编辑YAML是比较花时间的,还容易出错。一般做法是用kubectl命令创建资源,通过dry-run的方式,先生成YAML文件模版,再根据题目对这个YAML进行改动。这里有一份 kubectl Cheat Sheet 你当然不能错过。熟悉各种资源的简化名称
Kubernetes本身也有提供一些简化的资源名称,比如namespace
可以简化为ns
,deployment
可以简化为deploy
,pod
可以简化为po
。了解这些简化的资源名称,也能为你省掉不少的时间,在备考的过程中,可以记忆下来这些简化的命令。Kubernetes的官方文档,列出了所有资源的简化名称,可以参考: https://kubernetes.io/docs/reference/kubectl/overview/#resource-types
考试结果
由于我的网络问题,在考试中竟然断网了两三次 (具体表现就是终端卡住不动了,无法输入任何命令),不得不重新连接进入考试界面,浪费掉了一些时间。当时的心情,真有种万念俱灰的感觉。所以,考前最好再检查一下你的网络环境。最后一道题本来打算做,临交卷还有几分钟的时候,又卡住了。我索性放弃了,直接交卷……
考试结束之后,官方保证会在36小时之后出考试结果,结果会Email到你考试时候注册的邮箱。虽然考试过程中掉线了两三次,不过还是比较幸运,周五晚上的考试,周日就有了结果,通过了。我在想,要是不断网,再给我多来几分钟,我应该能上90分吧……
希望此篇blog对备考CKAD的同学有所帮助。