在这里插入图片描述

最近把 CKA 认证考过了,简单总结下考试经验,希望对需要的同学有所帮助。

一. 报名 & 预约

1. 报名

报名地址为 https://www.cncf.io/certification/cka/, 可以选择中文或者英文报名,我选的英文。
在这里插入图片描述
英文报名有几个优惠码:KUBERNETES15DEVOPS15,可以打 85 折,亲测可用。

在这里插入图片描述
进入付费界面付费完成即可。

2. 预约

付费完成后会收到邮件,进入
在这里插入图片描述

点击 「View Your Portal」或者直接访问 https://trainingportal.linuxfoundation.org/learn/dashboard 就可以看到考试项目了。

在这里插入图片描述

点击右边按钮进入预约界面,会有一系列的 checklist
包括安装插件,同意协议等操作,都完成后过个几分钟「预约按钮」才会可用,点击后预约即可,这里需要注意预约的默认时区是 UTC,先改为选择北京时间之后在进行预约。

在这里插入图片描述

预约完成后会收到邮件,后面就是坐等考试了。

二. 考试简介 & 备考建议

1. 考纲介绍

CKA 考试主要包括下面几项内容:

在这里插入图片描述

详细考纲考纲参见 CKA_Curriculum

  • 注:2020 年 9 月 1 号之后,考试集群版本变为 1.19,并且减少了安全相关的内容,将其移到了即将上线的 CKS 考试中,但依然会考察 RBAC 相关的内容。
2. 考官检查事项

考试开始前 15 分钟会有远程考官来做一系列的检查,如果是早上考试建议预留出时间来,避免考试开始太晚可能遇到网络问题或者被人打扰。

检查主要包括下面几项:

1. 开启摄像头 & 电脑桌面分享

首先考官会要求你开启摄像头,关闭无关进程并共享电脑桌面,如果有外接显示器也需要一并分享。

2. 检查办公桌面 & 房间环境

摄像头开启后,考官会指导我们做一系列的操作,比如检查电脑进程、检查浏览器 tab、检查房间环境和办公桌面、桌底,跟着做就好了,要注意一下几点:

  • 考试中途不能有其他人,因此尽量选择不被打扰的时间进行考试。
  • 桌面不能有任何无关的东西,比如书、水杯等。
  • 考试过程中必须始终开启摄像头和桌面分享,摄像头需要一直能看到全脸,不能喝水、捂嘴。
3.考试界面简介

考完检查完成后就可以进入考试界面了。考试界面如下:

图片来源

  • 图片来源:https://blog.csdn.net/fly910905/article/details/102966474

左边有时间条、语言选择和题目说明。题目语言可以选择英文、中文和日语,中文翻译可能略微不通顺,可以中英文对照着看。

右上角其他工具中有 notepad,可以用来保存一些命令等。

4. 考试建议

就我考完的感觉,CKA 题目难度不大,但考试面比较广, 会综合考察集群应用的生命周期管理,调度,网络,存储,集群运维,集群排错等内容。

考试时长 2 小时,有 15 ~ 20 道题目。我考的时候是 17 道。每道题目会给出需要的环境、题目要求以及所占权重,权重加起来共 100分,超过 66 分就算过。自己可以根据权重和知识点熟悉程度灵活选择做题顺序。

下面是一些考试建议:

【1】准备好 VPN

毕竟国外的考试,网络问题还是需要考虑的,建议选择早上或者深夜考试,并准备好 VPN。我是早上六点考的试,用上喂批恩敲命令行基本没有迟钝感。

【2】快速浏览题目

建议先把所有的题目浏览一遍,做到有的放矢。有的题目比如修改 deployment 的 replica 数只要一条命令几十秒就可以搞定,而集群升级则需要等待相关软件安装、集群组件升级完成才行,因此可以根据考试时间灵活调整做题顺序。

【3】注意题目要求的上下文

考试会给若干的集群,我考试时有 7 个,不同的题目会要求在不同的集群下完成,

每道题目开头都会给出对应的集群名和切换命令,因此在做提前一定要执行一遍以保证做题环境是正确的。

【4】启用 kubectl 自动提示

网上很多资料说考试环境已经配置了自动提示,但我考试时是没有的,需要自己设置:
文档地址为 enabling-shell-autocompletio,可以提前收藏好考试时直接打开复制即可。

【5】提前整理好文档收藏

对于一些简单操作,比如升级 Deployment 的镜像,水平扩展等尽量用命令完成。如果是需要编写 yaml 文件的题目,比如创建 Ingress、Network Policy、PV/PC,RABC 等,手敲太慢了,可以先从官方文档拷贝下来修改,为了节省时间,可将对应的文档地址组织到收藏夹中,用到的时候直接打开就行了。

三. 考试题目简记

下面是是我考完后简单整理的题目,大家可以作为参考。

1 . 创建 ServiceAccount 并赋予创建 Deployment 的权限。

2 . etcd 数据的备份与恢复

3 . Deployment 的的水平扩展

4 . 基于 nodeSelector 调度 Pod

5.查看 log 日志

题目很简单,一般是查看某个 Pod 的指定内容的日志然后输出到某个文件中:

kubectl logs -f PodNmae [containerName]| grep "" > file

6. 查看 Pod 的 CPU 使用

一般已经安装好了 metric server,直接用 kubectl top 命令查看即可。

7 . 根据要求创建一个多容器 Pod

8. 为 Pod 创建 NodeType 类型的 Service

9. 根据指定的的路径和 Service 创建 Ingress

10 . 根据指定规则创建 NetworkPolicy

11. 根据指定条件创建 PV、PVC 并挂载到 Pod,之后修改 PVC 的容量

12 . 给已有的 Pod 添加 sidecar 容器来收集日志

13. 升级主节点

集群升级目测是必考题,需要看清楚是升级主节点还是 worker 节点,步骤一般都是:

  • 查看升级信息:kubeadm upgrade plan

  • 驱逐对应节点 kubectl drain nodeName

  • 升级 kubeadm apt-get install kubeadm=1.19.0-00

  • 执行集群升级

    • 升级主节点 kubeadm upgrade apply v1.19.3
    • 升级 worker 节点:kubeadm upgrade node
  • 升级 kubelet: apt-get install kubeamd=1.19.0-00

  • 完成后重新启用节点 kubectl uncordon nodeName

  • 参考文档:Upgrading kubeadm clusters

14. 驱逐某个节点并重新调度

15 . 一道 taint 相关的题目,具体细节忘了

16. 集群排错,某个 worker 节点处于 NotReady,找出原因并恢复

这是我考试时候的最后一道题目,权重 13%,但题目不难,原因是 worker 节点的 kubelet 没有启动,ssh 登陆到 worker 节点使用 systemctl 启动就好了。

下面是一些 tip:

  • 节点问题:
    • api-server、etcd、scheduler、controller 是否启动成功,检查 /etc/kubernetes/manifests/ 下的 yaml 文件是否有问题。
    • 检查网络插件是否安装
    • 检查 kube-proxy 是否配置正确
    • 检查 DNS 是否配置正确
    • 检查 kubelet 是否正常启动
  • 应用问题:
    • 应用镜像是否正确
    • 应用配置的 Service、Ingress 等是否正确
    • CPU、内存等配置是否

四. 备考资料推荐

如果是为了考试的话,墙裂推荐 Udemy 的课程 Certified Kubernetes Administrator (CKA) with Practice Tests,这算是针对 CKA 认证量身定制的课程,并且附带了大量的习题,照着课程知识点过一遍做完这些习题考试基本没啥问题。这里需要注意习题练习需要威批恩,要提前准备好。

但就我个人感觉 CKA 考试难度有限,不建议为了考试而考试,重要的还是趁考试的机会系统深入的学习 K8S,下面是我最近集中学习 K8S 的一些材料,大家可以作为学习参考:

当然还有最重要的 官方文档

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐