
最近后台和群里隔三差五就有人问我CKS 2026 新版考试到底改了什么、看了一眼官网那个课程目录感觉每个字都认识但每个操作都不会、应不应该直接报班从头学。说实话我见过太多人把 CKS 当成 CKA 的进阶版来准备视频刷了两遍、题库背了三轮结果一上考场发现手边只有一个终端和一个真实的 Kubernetes 集群连kubectl --dry-runclient -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、sysctlMicroservice 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 kkubectlsource (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 DeploymentapiVersion: 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 --imagebusybox从 test Podwget nginx先看到超时再把 test 的标签改成appfrontend再试通了一次这题才叫真会了。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拼成runAsnonrootkubectl 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 版本怎么升级你都具备了自己学习新安全特性的能力。另外备考期间如果真的遇到瓶颈与其找人要答案不如回官方文档把对应章节重新读两遍——大部分考试陷阱文档里其实早就写明白了只是你第一遍没看到而已。