关于认证 Kubernetes 应用开发人员 (CKAD) 考试的提示
CKAD
考试内容
练习,练习,再练习!
资源
结论
经过几年的 Kubernetes 开发工作,几天前我顺利通过了 Kubernetes 应用开发者认证 (CKAD) 考试。
不少人让我写篇文章分享一下,所以这里就简单介绍一下 CKAD 认证是什么,以及一些关于 CKAD 考试的技巧和窍门。
CKAD
首先,CKAD是什么?
CKAD 是Certified Kubernetes Application Developer(认证 Kubernetes 应用开发者)的缩写,是由 Linux 基金会面向开发者颁发的关于 Kubernetes 的认证。
此认证考试的目的是“证明用户能够为 Kubernetes 设计、构建、配置和发布云原生应用程序。获得认证的 Kubernetes 应用程序开发人员可以定义应用程序资源,并使用核心原语在 Kubernetes 中构建、监控和排查可扩展应用程序和工具的问题。”
与其他认证一样,如果您想通过这项认证,需要支付 300 美元(如果您有折扣码,费用可能会更低 ;-))。
请注意,该认证的有效期为 3 年(36 个月)。
考试内容
当然,Kubernetes 认证的内容会遵循最新的 Kubernetes 版本,因此在我撰写本文时,当前版本为 1.18。
根据CNCF 开源的Kubernetes 1.18 版本考试大纲,考试内容描述如下:
- 13% - 核心概念
- 18% - 配置
- 10% - 多容器舱
- 18% - 可观测性
- 20% - Pod 设计
- 13% - 服务与网络
- 8% - 状态持久性
具体来说,你需要在最多 2 小时内回答 19 个问题。
每个问题都是相互独立的,每个问题都有宽度/大小,因此您可以先关注尺寸较大的问题。
考试期间,您可以随时标记某个问题。有了这个实用功能,您可以跳过当前问题,稍后再返回作答。
有用的信息
/!\ 警告:如果您的 Chrome 浏览器冻结,您需要将其关闭并重新打开,请不要惊慌,您的所有工作都将保存,但您标记的问题可能会消失(我遇到过这种情况……)。
考试前,您可以在预定日期和时间前 15 分钟登录。
考官需要时刻查看您本人和您的电脑桌面,所以请按照他在聊天中的要求去做,并且不要忘记准备好您的护照/身份证。
你需要独自待在一个封闭的房间里(允许带猫 :-D)。
如果很不幸你没通过,你可以免费补考一次。
您的 Chrome 浏览器只允许打开两个标签页:
- 考试用的一个
- 另一个需要添加到 Kubernetes 官方文档中的内容
所以你可以在考试前关闭其他应用程序和标签页。
你不允许大声说话(即使是思考也不行),要遮住嘴巴,还要佩戴智能手表^^。
考试期间你可以申请休息,但计时器不会停止……
在这个环境中,你可以显示记事本,这对于记笔记会很有用。
练习,练习,再练习!
要想成功通过这项考试,最重要的建议就是多练习 kubectl CLI!
本次考试不是理论考试,你需要使用 Kubernetes 集群和命名空间中的 kubectl 命令具体回答问题。
你需要熟练掌握命令行和 YAML 清单的使用。
您还需要了解Kubernetes 官方文档(这是唯一允许打开的另一个 Chrome 标签页)。
我的个人建议:
-
做好准备!
即使你的工作中已经使用 Kubernetes,也要花几天时间进行自我培训。 -
请仔细阅读整个问题描述,然后再直接编写 kubectl 命令。
-
别忘了复制粘贴命令才能进入正确的集群/上下文。你可以复制粘贴问题中提到的命令。
-
至少在考试前一天进行练习,不要使用
kubectx`and`kubens命令,但你需要熟记切换命名空间的命令。
切换到集群/上下文:
$ kubectl config use-context my-cluster
显示当前集群:
$ kubectl config current-context
切换到命名空间:
$ kubectl config set-context --current --namespace=my-ns
就我个人而言,在考试期间,我更喜欢-n my-ns为每个命令添加注释,这样我就能确定自己在做什么,以及在哪里执行命令。
-
你的个人电脑/虚拟机/环境中肯定有别名。但在实际环境中,你不会有别名。所以,请练习输入完整的 kubectl 命令,不要使用你的用户名
k get po或kgpo别名。 -
了解并使用资源的简称:
$ kubectl get/create po (instead of pod or pods)
$ kubectl get/create cj (instead of cronjob)
$ kubectl get/create deploy (instead of deployment)
$ kubectl get/create rs (instead of replicaset)
$ kubectl get/create svc (instead of service)
$ kubectl get/create cm (instead of configmap)
$ kubectl get/create hpa (instead of horizontalpodautoscaler)
$ kubectl get/create sa (instead of serviceaccount)
$ kubectl get/create pv (instead of persistentvolume)
$ kubectl get/create pvc (instead of persistentvolumeclaim)
...
- 如果需要添加或删除标签,不要编辑 Pod 或部署,而是使用命令
kubectl label。
例如:
在 my-pod Pod 中添加一个名为 my-label 的标签,其值为 my-value:$ kubectl label pod my-pod my-label=my-value
在 my-pod Pod 中删除 a-label 标签:$ kubectl label pod my-pod a-label-
但是……我怎么知道豆荚上的标签呢?$ kubectl get po --show-labels
- 使用 kube 1.18 时,无法仅通过一条命令行创建具有 3 个副本、内存限制和请求数的 Pod 部署,因此建议如下:
- 首先,创建部署并将其导出为 YAML 清单文件,使用
--dry-run -o yaml命令进行导出。 - 然后,对 Pod 创建执行相同的操作,并将其导出到另一个文件或标准输出中。
- 最后,将容器规格复制粘贴到部署清单文件中 ;-)。
注意:--dry-run该功能在 Kubernetes 1.18 中已被弃用,但您仍然可以使用它,只是会收到一条“已弃用信息”消息。在 1.18 版本中,建议改用其他--dry-run=client选项。
- 使用
kubectl explain命令显示规格信息:
$ kubectl explain job.spec
$ kubectl explain pod.spec.containers.readinessProbe
- 如果你知道命令的开头部分,但对其余部分有疑问,可以使用该
-h选项。
例子:
我知道如何用bash镜像创建cronjob,但我对如何定义计划任务有疑问:
$ kubectl create cj bash --image=bash -h
Create a cronjob with the specified name.
Aliases:
cronjob, cj
Examples:
# Create a cronjob
kubectl create cronjob my-job --image=busybox
# Create a cronjob with command
kubectl create cronjob my-job --image=busybox -- date
# Create a cronjob with schedule
kubectl create cronjob test-job --image=busybox --schedule="*/1 * * * *"
...
哦,太好了,多亏了帮助文档/手册,我知道--schedule="xxx"格式了…… ;-)
-
熟悉 Kubernetes 官方文档并训练自己进行搜索。
-
考试环境下你不能使用你心爱的 IDE,所以如果你不熟悉 VI,就练习一下 VI(参考 vi 速查表)。
-
你需要在一个与考试版本相同的集群(例如 1.18)中练习这些命令。
资源
为了考前练习,有很多资源可以利用,我在本文中列出了这些资源(我首先重点介绍免费资源^^):
-
Kubernetes CKAD 示例考试题实践挑战系列:
https://codeburst.io/kubernetes-ckad-weekly-challenges-overview-and-tips-7282b36a2681 -
CKAD练习题:
https://github.com/bbachi/CKAD-Practice-Questions/blob/master/core-concepts.md -
使用 Kubectl 1.18 CKAD/CKA 实现高速运行:
https://medium.com/faun/be-fast-with-kubectl-1-18-ckad-cka-31be00acc443 -
Killer.sh:
如果你愿意付费(30美元),就可以使用killer.sh。它是一个CKA和CKAD模拟器,环境与考试类似,包含20道题/场景,需要在2小时内完成。
我个人没有使用“killer.sh”。我不想花钱参加模拟考试,但我认识一些用过它的人,他们很喜欢在正式考试前通过模拟考试这种功能。
结论
和其他考试一样,做好充分准备。即使你认为自己了解 Kubernetes,并且在日常工作中也经常使用它,也不要掉以轻心。这不是理论考试,所以你需要反应迅速。
Kubernetes 不断发展,因此当有新版本发布时,请注意新功能并更新您的集群。
如果你有自己独特的考试秘诀,欢迎在评论区分享哦 ;-)。
文章来源:https://dev.to/aurelievache/tips-about-certified-kubernetes-application-developers-ckad-exam-287g
