拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

CKS 2026备考全攻略:从考试规则到8周实操计划

CKS 2026备考全攻略:从考试规则到8周实操计划

最近后台和群里隔三差五就有人问我:CKS 2026 新版考试到底改了什么、看了一眼官网那个课程目录感觉每个字都认识但每个操作都不会、应不应该直接报班从头学。说实话,我见过太多人把 CKS 当成 CKA 的进阶版来准备:视频刷了两遍、题库背了三轮,结果一上考场发现手边只有一个终端和一个真实的 Kubernetes 集群,连kubectl --dry-run=client -o yaml都玩不顺,2 小时在十几个问题前干瞪眼。

CKS 这考试和 CKA 本质上不一样。CKA 考的是"能不能把集群跑起来、把应用发布出去",CKS 考的是"怎么把集群和微服务锁死、出了事能不能发现、发现了能不能处置"。而且它是机考的实操题,做对了才给分,没有选择题可以蒙,也没法靠背诵混过去。这篇我把 2026 年备考规划从头到尾捋一遍:考试结构和规则、8 周学习排期、六大考试域怎么拆解、怎么用最常见的 nginx 部署当练兵场,以及考场上那些一分之差的操作细节。适合两类人看:已经拿了 CKA、准备一鼓作气把 CKS 拿下的;以及还在观望、想先搞清楚这个考试水深不深的人。

1. 2026 版 CKS 的考试骨架:先别急着买课,把规则吃透

CKS 全称 Certified Kubernetes Security Specialist,是 CNCF 与 Linux Foundation 体系下的专家级认证。它要求你在两小时内、在真实运行的 Kubernetes 集群上完成一系列安全相关任务,全程远程监考,操作过程会被录制。考试没有单选也没有多选,全部是实操题,这是它和大部分人考过的笔试类认证最根本的区别。

1.1 考试形态和报名门槛

CKS 考试时长 2 小时,题目数量通常在 15 到 20 题之间,及格线我记得是 67 分(以官方页面显示为准)。题目会在你本地环境或者远程桌面里给出一个预配置好的终端,里面已经装好了 kubectl,并且配好了几个不同集群的 kubeconfig context,每一道题可能对应不同的集群,你需要手动切换 context 再开始操作。

最容易被忽略的是报名门槛:你必须先持有有效的 CKA 证书才能报考 CKS。CKA 本身有效期是 3 年,CKS 的有效期也是 3 年,但报名 CKS 那一刻你的 CKA 必须是在有效期内的。我身边就有这样的例子:有人 CKA 是四五年前拿的,后来工作一直没用 Kubernetes,突然想补一张 CKS,结果报名时被系统拦下,只能先花钱把 CKA 续期,再重新准备 CKS,时间和金钱都浪费了。所以如果你动了考 CKS 的念头,第一步是先去查一下自己 CKA 的剩余有效期。

1.2 六大考试域的权重分布,决定了复习顺序

2026 版考试沿用的是官方课程大纲里的六域结构,整体权重如下:

考试域权重一句话概括
Cluster Setup10%安全地搭建集群组件、启用审计日志、保护 etcd、选择合适的运行时
Cluster Hardening15%RBAC 最小权限、服务账户安全、加固集群自身组件
System Hardening15%节点与内核层加固,CIS 基线、AppArmor、seccomp、sysctl
Microservice Vulnerabilities20%Pod 安全标准、网络策略、Secret 管理、资源限制
Supply Chain Security20%镜像签名与漏洞扫描、准入控制、最小化基础镜像
Monitoring, Logging and Runtime Security20%审计日志、Falco 运行时告警、日志分析与处置

把这张表看明白你就知道复习优先级了:后面三个域加起来占了 60% 的分值,考试重心明显放在"运行中的东西怎么防、怎么发现、怎么响应"上,而不是让 你背一堆集群搭建命令。很多人复习时花大量时间研究 kubeadm 的每个参数,结果到了考场发现 Cluster Setup 才 10%,实在不划算。

1.3 报名费用、补考和考试环境的变化

CKS 单次报名费用大概在 395 美元左右,官方一般会包含一次免费补考机会,意思是第一次没考过,可以不用重新付费再考一次,但如果第二次还不过,就得重新购买考试名额。具体以你报名时页面显示的规则为准,这类细节官网经常悄悄微调。

考试环境方面,2026 年的集群版本会跟随 Kubernetes 官方支持的版本走,大概率是 1.30 之后的较新版本。这对备考有个实际影响:你在视频教程里看到的旧参数、旧字段名可能在新版本里被废弃了,比如某些准入控制的写法、PodSecurityPolicy 已经完全退场,取而代之的是 Pod Security Standards。所以别拿着两三年前的资料死记硬背,复习期间一切以官方文档里当前版本的内容为准。

2. 8 周学习计划:把"看视频"变成"做操作"

CKS 备考最大的误区就是把学习时长等同于看视频时长。我自己第一轮复习就是反面教材:花了一周把几百分钟的视频看完,笔记记了厚厚一叠,然后打开一个练习环境想复现,发现自己连一道题都做不利索。后来我彻底换成"操作驱动"的方式:视频只用来理解概念,绝大部分时间都在真实环境里敲命令、改配置、验证结果。

下面这份 8 周计划默认你已经有 CKA 级别的 Kubernetes 基础——能独立部署集群、能写明白 Deployment 和 Service、熟悉 kubectl 常用命令。如果这些还做不到,建议先把 CKA 相关内容复习一遍再开始,否则两周环境搭建就会劝退你。

2.1 第 1~2 周:搭建环境,训练肌肉记忆

前两周不要碰任何考试真题,先把"环境"和"手感"搞定。

  • 本地装一个多节点的练习环境,推荐用 kind 或者直接用 kubeadm 在虚拟机里搭一套完整的控制面和两个 worker 节点。kind 启动快、占用资源少,但有些安全题目(比如节点级别 AppArmor)需要在真实 Linux 节点上操作,所以至少留一个 kubeadm 环境备用。
  • 每天固定做 30 分钟的"肌肉记忆训练":不查资料,用键盘敲完 etcd 备份、证书续期、kubeadm token 管理、node 隔离这些高频操作。
  • 关掉浏览器的自动补全,把 kubectl 别名和自动补全配置好:alias k=kubectl,source <(kubectl completion bash)。考场上终端环境不会主动帮你,这种顺手的小配置能省下大量时间。

第一周结束前,你应该能在 5 分钟内不加任何搜索地写出一份含安全上下文的 Deployment YAML。如果做不到,说明前面的 CKA 基础不牢,后面刷题只会越刷越慌。

2.2 第 3~5 周:按考试域逐个攻破,而不是按工具逐个学

中间三周是主战场,我建议按官方六大考试域的顺序推进,每个域给自己 2~3 天。这个阶段要建立的是"场景到工具"的映射:看到题目说"限制这个 namespace 里所有 Pod 的权限",你要瞬间想到 Pod Security Standards 和 SecurityContext;看到"某个节点要禁止非白名单系统调用",你要立刻想到 seccomp 和 AppArmor。

这个阶段需要动手接触的工具基本是固定的:kube-bench(集群 CIS 基线检查)、kube-hunter(集群攻击面探测)、trivy(镜像漏洞扫描)、Falco(运行时行为检测)、OPA 或 Kyverno(准入控制策略)、AppArmor、seccomp、etcd 备份与恢复。注意,不是让你把每个工具的文档从头到尾读一遍,而是让你亲手把它们跑起来、改配置、观察结果。比如 Falco,你至少要在练习环境里装一次、配置过一条自定义规则、捕获过一个异常事件,并知道去哪个日志文件里看告警——这些动作组合起来才叫"会考"。

2.3 第 6~8 周:模拟题和限时训练,把错误记成台账

最后三周只做一件事:模拟真实考试。找靠谱的模拟题平台(官方推荐的模拟环境、以及社区里口碑比较好的 KodeKloud 系列课程自带的练习题都可以),每两天做一整轮 2 小时限时训练,做完之后不管成绩如何,必须花同等的 2 小时复盘。

复盘不是对答案,而是给自己做一张错误台账,格式可以很朴素:

日期题型 / 考试域失误点根因正确做法

比如"etcd 备份没指定证书路径导致备份失败",根因是环境变量没加载,正确做法是写全--cacert、--cert、--key参数。这类台账考前翻三遍,比背任何题库都管用,因为它是你自己的薄弱点测绘。

2.4 每天 2 小时怎么分配才不累

上班族备考最现实的问题就是时间,我常用的分配方式是:

  • 早上 20 分钟:只看官方文档的某一节,把关键词记在纸上,不深入。
  • 中午 10 分钟:回忆昨天的操作步骤,在脑子里走一遍流程。
  • 晚上 60 分钟:主攻动手练习,只做一个主题,做完必须自己验证。
  • 睡前 30 分钟:整理今天的错误台账,浏览一遍今天用到的命令。

周末不要连续学一整天,上午模拟、下午复盘、晚上彻底休息。CKS 备考是持久战,考前两周拼的是状态稳定,不是最后一夜的突击。

3. 六大考试域逐个拆解:背什么、理解什么、放弃什么

光有排期还不够,很多人卡在中段是因为分不清"哪些要背、哪些要理解、哪些干脆放弃"。复习最怕的就是平均用力,下面按我的实际经验把六个域逐个过一遍。

3.1 集群与系统加固:CIS 基线和内核参数是硬功夫

Cluster Setup 和 System Hardening 这两个域加起来 25%,特点是知识面杂但深度不深。你要掌握的核心动作包括:

  • 给 kube-apiserver 设置合理的 TLS 参数、关闭匿名访问、配置审计策略文件并验证审计日志落盘。
  • 保护 etcd:确认静态加密开启、端口不对公网开放、证书权限为 600。
  • 在节点上运行 kube-bench 检查 CIS 基线,能看懂报告里哪一项是 warning、哪一项是 fail,并会修最常见的失败项。
  • 给特定 Pod 挂载 AppArmor profile 或者 seccomp 配置,通过securityContext字段,而不是通过 Docker 命令行。

这部分我强烈建议建立一份"命令速查卡",因为考试时你不可能现场回忆 CIS 报告的每一项含义。速查卡只记录命令结构和你自己易错的地方,不要抄文档原文,抄完你也不会看。

3.2 微服务与供应链安全:SecurityContext 和准入控制是核心

Microservice Vulnerabilities 和 Supply Chain Security 加起来 40%,是整张卷子的半壁江山,值得花最多时间。

微服务域的核心是 SecurityContext 和 NetworkPolicy。你要能在一分钟内判断一份 Deployment 是否满足 Pod Security Standards 的 restricted 级别:是否runAsNonRoot、是否禁用了特权提升、是否只保留了必要 capabilities、是否设置了只读根文件系统。网络策略则要会写"默认拒绝 + 按需放行"的模式,并且理解podSelector、namespaceSelector和ipBlock之间的差别——它们的高频考点。

供应链安全域表面上考镜像,实际考准入控制。你需要会使用 trivy 扫描镜像漏洞、会通过 cosign 验证镜像签名、并且在集群里配置一个准入控制器(OPA/Gatekeeper 或 Kyverno)来强制限制镜像来源、禁止 latest 标签、禁止特权容器。这个域没有捷径,就是反复练"写策略、部署策略、验证策略拦截生效"这条链路。考场上验证环节极其重要:策略部署之后,用错误的 Pod 试一次,确认被拒绝;再用正确的 Pod 试一次,确认放行。两步都做,这题才叫稳。

3.3 监控、日志与运行时安全:Falco 是高频考点,必须亲手跑通

最后一个大域,其实是很多考生最陌生的。前面几个域至少还和日常发布应用相关,这里直接进入"安全运营"的范畴。你要能:

  • 读懂 Kubernetes 审计日志字段,知道 user、verb、resource、responseStatus 各是什么含义,并且能根据题目要求筛选特定用户的敏感操作。
  • 配置审计策略,把指定事件的级别提升到RequestResponse或Metadata。
  • 在节点上安装并配置 Falco,出现异常系统调用时能捕捉到告警,知道告警默认写到哪、怎么自定义规则。

我第一次学 Falco 时觉得规则语法特别绕,走了弯路后才明白:考试不需要你精通规则语言,只需要你知道"去哪装、怎么启动、怎么喂一条规则进去、去哪看输出"这条基本链路。把它当成一个"会报警的黑盒"来用,反而效率最高。

3.4 复习取舍:这些可以少花时间

有加权的,就有低性价比的。Cluster Setup 域里的冷门参数、各类网络插件的安全配置细节、以及很偏的存储安全方案,在真题里出现的概率远低于主流考点。把这些时间留给"写策略 + 验证拦截",收益会高得多。另外一个常见建议是:考试大纲里明确列了 kube-hunter,但它一般就是拿现成工具跑一遍看输出,理解原理即可,不用深钻。

4. 拿 nginx 部署当练兵场:一份 YAML 从"能用"到"能过考"

如果你经常搜 Kubernetes 部署相关的内容,一定刷到过"kubernetes 部署 nginx"这种入门教程。我想换个角度讲:不要满足于"部署成功",而要在每次部署时都问一句"如果这是一道 CKS 考题,我这份配置能拿几分?"。nginx 是普通生产环境里最常见的服务之一,把它的部署从"能用"改造成"能扛",等于提前把 60% 的考试域过了一遍。

4.1 普通部署里藏着哪些安全隐患

先看一份最常见的 nginx Deployment:

apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80

单看功能,它能跑;单看安全,全是不及格点。nginx:latest无法溯源镜像内容,latest标签在考试里几乎是必改项;容器默认以 root 运行,宿主机权限被放大;根文件系统可写,一旦被攻破就能向容器内写东西;没有资源限制,容易造成节点资源耗尽;没有网络策略,等于全放行;Pod 没有显式设置serviceAccountName,会默认挂载 default 服务账户的 token。这六条,每一条都对应一个考试域里的考点。所以别小看入门题,把这份 YAML 改对,比刷十道偏题更有用。

4.2 加固版的 nginx Deployment 逐字段拆解

下面这份是我练习时用的加固版本,每一行都值得对着考试大纲想一遍原因:

apiVersion: apps/v1 kind: Deployment metadata: name: nginx namespace: prod spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: serviceAccountName: nginx-sa automountServiceAccountToken: false securityContext: seccompProfile: type: RuntimeDefault runAsNonRoot: true containers: - name: nginx image: nginx:1.25.3-alpine imagePullPolicy: IfNotPresent securityContext: runAsUser: 101 allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities: drop: - ALL add: - NET_BIND_SERVICE resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 256Mi ports: - containerPort: 80

解释几个容易踩坑的字段:

  • runAsNonRoot: true只承诺"不以 root 跑",但容器镜像默认用户就是 root 时,还需要配合runAsUser: 101显式指定运行 UID。nginx 官方镜像里有 nginx 用户,但不同版本 UID 可能不同,101 是个常见选择,具体看你用的镜像。
  • readOnlyRootFilesystem: true会让 nginx 无法写/var/cache/nginx和/run,如果你只改只读不改别的,Pod 会起不来。练习时一定要给这两个目录补emptyDir挂载,这也是考试里"资源无法启动"最常见的坑之一。
  • capabilities.add: ["NET_BIND_SERVICE"]是因为我们把所有能力都 drop 了,但 nginx 需要绑定低于 1024 的 80 端口,在非 root 用户下就必须放开这一个能力。这个"drop 全部再加必要项"的思路,本身就是一个考试答题模板。

4.3 配套的 NetworkPolicy:默认拒绝再加白名单

Deployment 改完,接着练网络策略。生产最佳实践是先写一条"默认拒绝所有入口流量"的策略,再写一条"只允许来自前端"的策略,两者配合:

apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: nginx-deny-all namespace: prod spec: podSelector: matchLabels: app: nginx policyTypes: - Ingress --- apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: nginx-allow-frontend namespace: prod spec: podSelector: matchLabels: app: nginx policyTypes: - Ingress ingress: - from: - podSelector: matchLabels: app: frontend ports: - protocol: TCP port: 80

这里有个考试高频易错点:podSelector: {}不是"所有 Pod",而是"当前 namespace 里没有附加任何标签的 Pod",写错了策略就完全失去预期效果。我练习时犯过这个错误,卡了很长时间,后来才意识到官方文档里对空 podSelector 的解释和大多数人脑中的直觉不一样。验证阶段建议在 prod 里跑一个kubectl run test --image=busybox,从 test Podwget nginx,先看到超时,再把 test 的标签改成app=frontend再试,通了一次,这题才叫真会了。

nginx 这套练熟了,你可以迁移到其他应用:把镜像从 nginx 换成业务镜像,把端口从 80 改成业务端口,安全字段完全复用。所谓备考,有时候就是把一个场景从头到尾做深,胜过一百个场景都只做到"能跑"。

5. 考试当天的高危操作:题型、计时与翻车现场

备考复习得再好,考试当天也可能因为操作习惯扣分。CKS 考试不是选择题,是"改完集群 → 系统验证 → 给分",所以你的每一步都会直接影响结果。

5.1 2 小时 15~20 道题的节奏控制

拿到题目的前 3 分钟不要急着动 kubectl。先把所有题目快速扫一遍,标注每道题对应的集群 context(通常在题目描述里给得很明确),先做自己有把握的大分值题,把最耗时的题留到后面。平均下来每题只有 7 分钟左右,这意味着"长期思考型"的答题策略在这里完全失效——你必须看到题目类型就立刻锁定对应的命令和策略模板,手比脑快。

建议形成固定的答题顺序:读题 → 确认 context → 确认目标资源名和 namespace → 生成 YAML → 应用 → 验证。每一步都不要省略"验证",因为机器判分通常看你最终留下的资源状态,不看你过程。我见过有人把策略写对了但忘记kubectl apply,资源根本没建出来,等于零分,这种失误最冤。

5.2 考场上最容易失分的五个操作

根据我自己的经验和身边人的反馈,下面这些细节几乎人人踩过:

  • context 切错。题目描述里会写清楚在哪个集群操作,但人的手比脑子快,kubectl config use-context输顺手就换了另一个。做完一道题切下一道之前,务必重新确认当前 context。建议把每个集群的 context 名称抄在草稿纸上,一道题一行,做完打勾。
  • 资源命名没按题目要求来。CKS 的题目通常会给出规定好的 namespace 或者资源名前缀,比如tr-sl-、cis-,你按习惯起了个自定义名字,即使配置完全正确,判分系统也找不到你的资源。
  • 只写了 YAML 没apply,或者apply了报错没看。很多 YAML 问题出在字段拼写,比如runAsNonRoot拼成runAsnonroot,kubectl apply会直接报错,你如果不看输出,后面全白忙。
  • 没验证最终状态。策略类题目必须用一个测试对象去试一次,确认"该拦的拦住了、该放的放行了"。只写完 YAML 不验证,等于把分数交给运气。
  • 在错误的时间用kubectl delete。有人为了重做某步直接删除整个 Deployment,把题目要求的原有资源也删了,导致后续步骤无解。改配置可以用kubectl edit或先导出再 apply,不要动不动就 delete。

5.3 能拿分就不要空着:部分分和"留痕"策略

考试按点计分,系统检查的是最终集群状态里的关键资源,所以你做得不全比不做强。哪怕某一步命令报错,只要记下报错信息、尝试修复,可能已经完成了题目的一部分验证逻辑。实际操作中还有一个"留痕"原则:你在终端里敲过的命令、写过的文件,都尽量保持在题目的工作目录下,文件名按题目要求来。判分系统有一部分是通过查找指定路径下的文件来确认你是否完成了任务的,文件命名随意或放到别处,等于做了也白做。

另外,别把精力浪费在和工具搏斗上。如果发现某个工具在当前节点上没有安装,先看/usr/bin、/usr/local/bin有没有,实在没有就尝试包管理器安装,但不要花超过 3 分钟。多数情况下考试环境会在相关节点上预装好需要的安全工具,你更应该做的是知道怎么调用,而不是现场重新编译。

6. 考前一周和考后一周的正确打开方式

到这一步,该会的都已经练得差不多了,最后拼的是状态和复盘习惯。我经历过的最大教训是:考前一周还在一股脑刷难题,结果考试当天脑子是糊的。所以这一周想清楚"不做什么"比"做什么"更重要。

6.1 考前 7 天的自查清单

我给自己做了一个很朴素的清单,考前每天过一遍,划掉一条就轻松一分:

  • 完整模拟题至少做过 3 轮,每轮都在 2 小时内完成。
  • 六大考试域里,每个域至少能手写出一个对应的 YAML 模板或命令序列。
  • 高频命令组合已形成肌肉记忆:etcd 备份与恢复、审计策略启用、证书签发与续期、镜像漏洞扫描、准入策略部署与验证。
  • 知道如何快速查看官方文档里的语法:kubectl explain是你的救命工具,考前务必练熟。
  • 把错误台账从头翻一遍,只看"失误点"和"正确做法"两列。
  • 提前一天确认考试环境:网络、摄像头、身份证件、考试软件是否正常。

这份清单的目的不是让你查漏补缺,而是让你在考前一天有底气。"我该练的都练过了,剩下的就是正常发挥",这比任何临时抱佛脚都管用。

6.2 考后复盘:不管过没过,都是一种资产

考试一结束就趁热打铁,把记忆里的题目按考试域记下来,标清每个问题对应的官方大纲位置。然后对照自己的答题情况,诚实回答三个问题:哪些题是明确做对的、哪些是半做对但没验证的、哪些是完全没有思路的。把这三类分出来,你就知道自己真正的薄弱项在哪,而不是只看一个"过了/没过"的结果。

如果没过,这其实是最好的补考指南。官方通常会有成绩单,说明你在哪个域失分,照着它调整复习方向,比重新盲目刷整套题高效得多。

6.3 最后一点个人经验

考 CKS 这两年的人越来越多,但通过率一直不高,不是因为题难,而是因为大多数人还停留在"看课 + 背题库"的学习方式里。我自己的体会是,CKS 考的不是你会不会用某个工具,而是你有没有建立一套"默认不安全"的思维方式:每次写 YAML 都先问运行身份、再问网络边界、再问权限范围。这套思维方式一旦养成,不管 2026 年题目怎么变、Kubernetes 版本怎么升级,你都具备了自己学习新安全特性的能力。另外,备考期间如果真的遇到瓶颈,与其找人要答案,不如回官方文档把对应章节重新读两遍——大部分考试陷阱,文档里其实早就写明白了,只是你第一遍没看到而已。

返回列表