云原生技术发展趋势

云原生基金会 CNCF 于 2015 年成立,标志着云原生从技术理念转化为开源实现,并给出了目前被广泛接受的定义:

云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API

在 “CNCF 2020 年中国云原生调查”中显示,有 72% 的中国受访者在生产中使用了 Kubernetes。过去一年,我们观察到的国内云原生生态的蓬勃发展也印证着云原生技术正成为释放云价值的最短路径。从早期的无状态应用、到 AI 大数据和存储类应用都在拥抱容器技术。可以看见,以 Kubernetes 为代表的容器技术已成为云计算的新界面,并将继续带来更大价值。

Kubernetes 已经成为云时代的操作系统。对比 Linux 与 Kubernetes 的概念模型,他们都是定义了开放的、标准化的访问接口;向下封装资源,向上支撑应用。它们都提供了对底层计算、存储、网络、异构计算设备的资源抽象和安全访问模型,可以根据应用需求进行资源调度和编排。Linux 的计算调度单元是进程,调度范围限制在一台计算节点。而 Kubernetes 的调度单位是 Pod, 可以在分布式集群中进行资源调度,甚至跨越不同的云环境。

在云原生技术及应用日渐普及的今天, 新的技术也带来了新的安全挑战。由于多个容器共享了同一内核,在隔离和安全性方面必然存在天然缺陷,并进一步限制了容器的应用场景和发展,云原生应用会在同一宿主机上运行多个业务的容器,而安全性的要求是即使运行在同一台宿主机上不同业务也必须具备强隔离的安全保证; 在云原生产品时代,容器运行时除了需继续保持轻量、高效、自包含、一次打包到处运行的优秀特性外,还需进一步确保良好的安全隔离性,镜像安全、容器安全、云原生网络微隔离等能力便成为云原生安全的重中之重。

随着云原生安全在国内的热度越来越高,也有越来越多的人对 CNCF 的官方认证考试:Kubernetes 安全专家认证(CKS) 产生兴趣,能获得 CKS 证书证明考生具备在构建、部署和运行期间有确保基于容器的应用程序和 Kubernetes 平台安全的必要能力,并且有资格在专业环境中执行这些任务。

但是只有先通过了 Kubernetes 管理员认证 (CKA) 考试,才能考 Kubernetes 安全专家认证(CKS)。今天这篇文章我们就先讲讲如何拿下 CKA 认证, 希望能对感兴趣的同学有所帮助。

CKA 认证介绍

我们来看一下官方的介绍:

Kubernetes 管理员认证(CKA)旨在确保认证持有者具备履行 Kubernetes 管理员职责的技能,知识和能力。CKA 认证可以让认证管理员在就业市场上快速建立自己的信誉和价值,也可以让企业更快地聘请高素质的团队来支持他们的成长。

另外如果企业想要申请 Kubernetes 认证服务提供商(KCSP),条件之一是:至少需要三名员工拥有 CKA 认证。

报名须知

  1. CKA 中文报名地址:https://training.linuxfoundation.cn/certificates/1,通过中文网站报名的考试代号是CKA-CN,这个是中文监考官,如果选择的是 CKA 代号的话就是英文监考官;

  2. 到发表文章为止, 考试费用已经涨到 2498 元人民币,可以开发票,发票是在申请之后的一周内寄出;

  3. 在 CKA 中文网站报名考试后只会提供一个考试码,考试码必须要在一个月内使用, 考试码使用地址: https://trainingportal.linuxfoundation.org/redeem, 使用考试码需要注册一个 Linux 基金会英文官网账号, 使用考试码后,考试的有效期是一年,也就是可以先缴费报名,可以在报名后的一年内的任意一天预约考试;

  4. 之前证书的有效期是 2 年, 2021 年以后证书有效期是 3 年;

  5. 考试形式是在线考试,考试时间2小时,考试题目17道(都是上机操作题),满分100分,66分及格;

  6. 考试是提前在网站上预约,最快可以预约 24 小时后的考试,也就是说今天可以约明天的考试,取消预约也是提前 24 小时取消;

  7. 有两次考试机会,如果第一次挂了还拥有一次免费的补考机会;

  8. 考试证件,之前考试的时候还需要护照,现在只需要身份证和一张借记卡或信用卡即可。

考试是如何监考的?

认证考试是通过流音频、视频和屏幕共享源远程监考的,屏幕共享提要允许监考人员查看考生的桌面(多个显示器需要监控到所有显示器),音频、视频和屏幕共享提要将存储一段时间,以备后续需要查看时使用。

预约考试及系统环境检查

因为预约考试、考试环境检测中的带宽测试及实际考试的时候都需要连接到国外的服务器, 大部分同学都会遇到掉线的问题, 经过我们测试发现可以将 examslocal.compsionline.com 这两个地址添加到科学上网的规则中, 可以极大的增加考试时的稳定性, 当然, 前提是科学上网的速度也要足够好

预约考试流程如下:

  1. 登录 Linux 基金会英文官网: https://trainingportal.linuxfoundation.org/learn/dashboard, 如果已经使用过考试码首页会显示我们要认证的考试, 点击 Start Certification, 然后会自动进入考试检查界面

  2. 在 Agree to Global Candidate Agreement 后面点击 Read Now

  3. 在 Verify Name 后面点击 Verify Now, 输入护照或者信用卡的拼音名字. 注意! 不要用中文,预约考试时如果写了中文名字,发的证书名字有可能是乱码,切记!

  4. 默认考试的系统只能选择 Ubuntu 18.04

  5. 验证完名字后等待 Schedule an Exam 按钮变为可用状态, 大约 30 分钟左右, 可以先进行后面的选项

  6. 在 Check System Requirements 后面点击 Check Now ,

    在新界面中的三个选项中选择 Option 3 ,

    Sponsor 选择 Linux Foundation ,

    Exam 选择 Certified Kubernetes Administrator China Exam (CKA-CN) (CKA-CN) - English ,

    然后点击 Go ,

    在新的界面点击 Install Extension 安装考试监控插件,

    安装完成之后点击页面上方的 Run Compatibility Check Again ,

    通过检测的界面如下:

  7. 在 Get Candidate Handbook 后面点击 Read Now , 然后会跳转一个页面, 关闭页面后即可变绿

  8. 在 Read the Important Instructions 后面点击 Read the Important Instructions , 然后会跳转一个页面, 关闭页面后即可变绿

  9. 最后回到 Schedule an Exam, 选择北京时区, 选择考试时间, 再次确认时间后即可完成考试预约.

预约完成的界面如下:

考试流程说明

  1. 到考试时间后点击 Take Exam 进入考试界面, 点击 Launch Exam 开始考试

  2. 根据提示开启相关监控权限

  3. 等待监考老师

    老师来之后会让我们拿起电脑把考试桌子的上下左右使用摄像头检查一圈, 桌子上和桌子下都不允许放任何东西, 如果要放水杯必须使用透明的

  4. 执行系统环境检查

    如果是苹果电脑, 监考老师会要求我们打开强制退出应用界面, 强制杀死除 Finder 和 Chrome 之外所有的进程(Windows 系统应该也会要求有对应的操作)

考试界面说明

顶部状态栏说明

Online: 连接状态

Camera: 摄像头,可以预览监控视角中自己的画面

Desktop: 共享桌面预览(通过 Chrome 插件共享桌面,可以监控多显示器)

Live Chat: 与考官对话

Exam Controls: 申请暂停,恢复,结束考试等操作

左侧考题区说明

  1. 红色方块中的命令, 在鼠标放上去的时候会在右上角显示一个 Copy 的按钮, 点击可以直接复制整段命令内容

  2. 考题区的蓝色字体, 可直接使用鼠标点击, 点击后即可复制对应的关键字

右侧 webshell 快捷键说明

Ctrl + CCtrl + V 快捷键被禁用了

macOS 系统可直接使用 Command + CCommand + V 复制粘贴

Windows 系统可以使用 Ctrl + InsertShift + Insert 复制粘贴

考试环境介绍

考试环境一共 7 个 Cluster,为了尽量减少集群的切换已经对考题进行了分组,同一 Cluster 内的考题将会连续显示。

集群名称集群规模
k8s1 master,2 worker
hk8s1 master,2 worker
bk8s1 master,2 worker
wk8s1 master,2 worker
ek8s1 master,2 worker
mk8s1 master,2 worker
ok8s1 master,2 worker

每个考题的开头都会使用命令确保使用正确的 Cluster,例如:

kubectl config use-context k8s

可以通过 ssh 主机名 连接到每个 Cluster 的节点

ssh k8s-node

使用以下命令可以在任何节点上获取更高权限

sudo -i

kubectl 的补全命令留着备用

source <(kubectl completion bash)

遇到需要修改 yaml 的, 记得备份, 避免编辑错了,如果忘记备份无法回滚原来的文件, 那样只能放弃。

有些题目很关键, 分数最高, 而且是送分题, 万一掉线了,或者时间赶不上的时候,记得先做容易的且分值大的题。

在考试期间可以访问哪些外部资源?

  • 查看命令行终端中显示的考试内容说明

  • 查看发行版安装的文件(即 /usr/share 及其子目录)

  • 使用他们的 Chrome 或 Chromium 浏览器打开一个额外的选项卡以访问资产:https://kubernetes.io/docs/、https://github.com/kubernetes/、https://kubernetes.io/blog/ 和他们的子域。这包括这些页面的所有可用语言翻译(例如 https://kubernetes.io/zh/docs/)

不得打开其他选项卡,也不得导航到其他站点(包括 https://discuss.kubernetes.io/ )。

上述允许的站点可能包含指向外部站点的链接,考生不能点击任何导致他们导航到不允许的域的链接。

接下来, 重点来了!!!

福利: 重考链接及重要知识点参考链接

  • https://www.examslocal.com/linuxfoundation 重考链接

考试的时候终端经常会遇到卡死的情况, 不要着急, 可以和监控老师沟通让他来帮你恢复.

如果不小心将考试界面关闭, 正常情况是无法再次打开考试的, 这里备份了一个考试入口, 可以从这个链接进入.

  1. http://kubernetes.io/zh/docs/reference/access-authn-authz/rbac RBAC

  2. http://kubernetes.io/zh/docs/tasks/administer-cluster/safely-drain-node 节点维护

  3. http://kubernetes.io/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade 升级集群

  4. http://kubernetes.io/zh/docs/tasks/administer-cluster/configure-upgrade-etcd 备份 ETCD

  5. http://kubernetes.io/zh/docs/concepts/services-networking/network-policies 网络策略

  6. http://kubernetes.io/zh/docs/concepts/workloads/controllers/deployment 暴漏服务

  7. http://kubernetes.io/zh/docs/concepts/services-networking/ingress/#the-ingress-resource Ingress

  8. http://kubernetes.io/zh/docs/tasks/run-application/scale-stateful-set 扩容副本数量

  9. http://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node 调度 Pod

  10. http://kubernetes.io/zh/docs/concepts/scheduling-eviction/taint-and-toleration 查看可用节点

  11. http://kubernetes.io/zh/docs/concepts/workloads/pods 创建 Pod

  12. http://kubernetes.io/zh/docs/concepts/storage/persistent-volumes 创建 PV

  13. http://kubernetes.io/zh/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims 创建 PVC

  14. http://kubernetes.io/zh/docs/tasks/debug-application-cluster/debug-running-pod 查看 Pod 日志

  15. http://kubernetes.io/zh/docs/concepts/cluster-administration/logging 使用 sidecar 代理容器日志

  16. http://kubernetes.io/zh/docs/reference/kubectl/cheatsheet 查看 Pod CPU

  17. http://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/kubelet-integration 配置 kubelet

这些页面都可以添加到浏览器书签中, 考试时可直接打开使用。

下一期我们将介绍CKS的一些考试指南。

声明:本文来自小佑科技,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。