Kubernetes 认证管理员(CKA)必过心得
什么是 CKA 考试?
CKA (Certified Kubernetes Administrator) 考试是一种远程在线、有监考、基于实操的认证考试,需要在运行 Kubernetes 的命令行中解决多个任务。CKA 认证考试是专为 Kubernetes 管理员、云管理员和其他管理 Kubernetes 实例的 IT 专业人员而设的。已获得认证的 K8s 管理员具备了进行基本安装以及配置和管理生产级 Kubernetes 集群的能力。
考 CKA 有什么用?
证明你的实力,提高竞争力: 云原生发展趋势日益迅猛,越来越多的公司已经开始使用 kubernetes 作为核心容器调度平台,因此在诸多岗位都有明确的 CKA 认证要求。
公司招投标:有过招投标经验的同学应该了解招投标的过程,这块就不详细叙述,通过 CKA 证明你们公司拥有云原生技术实力,同时可通过 CKA 认证提供公司投标评分
申请 KCSP 认证:每个公司有 3 名 CKA 员工就可以申请 KCSP
考试内容
通过考试后您将会获得由 Linux 基金会和云原生计算基金会(CNCF)颁发的 CKA (Certified Kubernetes Administrator)证书,如下:
考试规则
考试模式:线上考试
考试时间:2 小时
认证有效期:3 年
软件版本:Kubernetes v1.24
重考政策:可接受 1 次重考
经验水平:中級
考试过程中你的 PC 机是可以通过浏览器访问 Kubernetes 官网的,这一点很重要,相当于“开卷考试”,所以没事多看看官网文档很重要!知道考试内容在哪里,学会关键词搜索。
https://kubernetes.io/zh-cn/docs/home/
更多关于考试的详细内容可以前往 linuxfoundation 社区官网查看
https://training.linuxfoundation.cn/certificates/1
考试技巧
1. 别名设置
考试多半是通过命令行直接操作,已到达考试目标,频繁的命令不仅容易出错而且比较占用时间,2 小时很宝贵!通过别名来偷个懒吧!
2. 资源简称-SHORTNAMES
下面只是列举了部分比较常见的资源,因为 k8s 资源很多,像查看更多的话,可以执行 kubectl api-resources 命令来查看,表格中的简称一定要记住!尤其是英文不好的同学。
3. 学会看文档
记住“这是一场开卷考试”,所以不要想着死记硬背那一堆 yaml 文件,学会使用搜索,这将事半功倍,例如:想要知道 deployment 里面有哪些可以配置的字段,直接在官网文档搜索 deployment 即可,而且支持中文,考试中让你创建一个 deployment,你完全可以把 yaml 粘贴过去,通过 vi 命令编辑一些名称和 docker image 即可,到这是不是感觉离通过考试又进了一步!
4. Help 大法好
学会 kubectl xxx --help,会有不一样的惊喜。
5.牢记 pod 的状态
在 k8s 集群中,我们创建最多的资源应该就是 pod 了,因为这直接关系到我们的服务是否正常,了解 pod 不同状态所代表的含义是更加有利于帮助我们排查问题
考试练习
集群安装
平时学习、练习时是可以用 kubeadm 去安装集群,目前这是官方比较推荐的方式。
1) 初始化集群
2) 添加节点
3) 维护、移除节点
4) 恢复节点
工作负载
Deployment(无状态应用)
是 kubernetes 在 1.2 版本中引入的概念,用于更好的解决 Pod 的编排问题,Deployment 在内部使用了 ReplicaSet 来实现目的,我们可以把 Deployment 理解为 ReplicaSet 的一次升级,两者的相似度超过 90%。
StatefulSet(有状态应用)
和 Deployment 类似, StatefulSet 管理基于相同容器规约的一组 Pod。但和 Deployment 不同的是, StatefulSet 为它们的每个 Pod 维护了一个有粘性的 ID。这些 Pod 是基于相同的规约来创建的, 但是不能相互替换:无论怎么调度,每个 Pod 都有一个永久不变的 ID。
DaemonSet
守护进程,DaemonSet 会在每个 k8s 节点运行一个 pod,当有节点加入集群时, 也会为他们新增一个 Pod 。当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。比如:Prometheus 监控、日志收集的系统都需要
Job
任务,通常任务是临时性的,Job 会创建一个或者多个 Pod,Pod 中的程序计算完成后会自动终止
服务和网络:
service
将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。简单来说就是起到一个自动注册和对集群内部服务访问的作用。试想一下因为 pod 重建后 IP 都会变,想要被其他服务一直被访问不太现实,而且多个 pod 副本难道自己要搭建一个负载均衡,然后还要考虑 pod 怎么注册进来?不需要!这就是 service 干的活儿。
通过 selector 可以选择这个 service 后端的服务是什么,类似配置 SLB 负载均衡的 Backend
ingress
提供将集群内部服务暴露到外部的能力,简单理解就是起到一个负载均衡器的作用,目前开源的 ingress 有 nginx-ingress、traefik,商用的 F5、A10 都有
存储
持久卷(Persistent Volume)
简称 PV,PV 是集群中的一块存储,可以由管理员事先制备, 或者使用存储类(Storage Class)来动态制备。持久卷是集群资源,就像节点也是集群资源一样。PV 持久卷和普通的 Volume 一样, 也是使用卷插件来实现的,只是它们拥有独立于任何使用 PV 的 Pod 的生命周期。此 API 对象中记述了存储的实现细节,无论其背后是 NFS、iSCSI 还是特定于云平台的存储系统
持久卷申领(PersistentVolumeClaim)
简称 PVC,PVC 表达的是用户对存储的请求。概念上与 Pod 类似。Pod 会耗用节点资源,而 PVC 申领会耗用 PV 资源。Pod 可以请求特定数量的资源(CPU 和内存);同样 PVC 申领也可以请求特定的大小和访问模式 (例如,可以要求 PV 卷能够以 ReadWriteOnce、ReadOnlyMany 或 ReadWriteMany 模式之一来挂载
存储类 (storageClass)
简称 SC,通过 SC 不需要管理员单独去创建 PV,普通用于只需要根据需要指定用哪个 SC,然后在 PVC 中指定存储卷大小就可以自动申请下来存储卷
存储类型
emptyDir: Pod 启动时为空,存储空间来自本地的 kubelet 根目录(通常是根磁盘)或内存,使用场景:如果 Pod 被删除,那么数据也会被删除,不具备持久化。Pod 内的容器,需要共享数据卷的时候,使用的临时数据卷。
hostpath:直接挂载主机目录, 如果需要通过容器直接读取宿主机磁盘中的内容,那么可以通过挂载 hostpath 的卷实现
故障排除
常用工具
kubectl describe: 当任何资源没有进入一个正常状态的时候,都可以通过 kubectl describe 查看这个资产的事件信息
kubectl logs:这个命令主要对于 pod 资源使用,当 pod 进入 running 状态后,服务已经有问题,这时候可能程序里面有报错,可以使用 kubectl logs 查看 pod 中应用的具体日志
网络
遇到网络问题可使用 ping 、mtr、telnet 等命令测试网络连通性,判断网络故障点
总结
勤加练习是通过 CKA 考试的关键,本文只列举了部分实操内容,更多考试内容以及详细信息可以前往 CNCF 官网或 Linux foundation 查看,最后祝各位考试顺利通过!
关于 HummerRisk
HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生环境的安全和治理问题。核心能力包括混合云的安全治理和容器云安全检测。
针对于 K8s 容器云的安全,我们提供多方面的检测能力,可以帮助用户快速发现 K8s 集群中的各种安全问题。
欢迎关注我们了解更多。
https://github.com/HummerRisk/HummerRisk
版权声明: 本文为 InfoQ 作者【HummerCloud】的原创文章。
原文链接:【http://xie.infoq.cn/article/bc5c122be59ea6b1bca8bab6e】。文章转载请联系作者。
评论