CKA 模拟考题与标准解法¶
使用方式¶
这页的目标不是堆很多碎题,而是帮你建立“看到题目后应该如何落手”的标准节奏。
建议每道题都按这个方式训练:
- 先自己做,不看答案
- 用计时器限制在 5 到 8 分钟
- 做完后再对照标准解法
- 最后把自己的慢点和错点记下来
模拟题 1:创建 Deployment 并扩容¶
题目¶
在 app 命名空间创建一个名为 web 的 Deployment,镜像为 nginx:1.25,副本数为 3。
标准解法¶
k create namespace app
k create deployment web --image=nginx:1.25 -n app
k scale deployment web --replicas=3 -n app
k get deployment,pod -n app
验证点¶
- Deployment 名称正确
- 副本数为 3
- Pod 正常 Running
常见失误¶
- 忘了切 namespace
- 只创建 Deployment 没扩容
- 没验证 Pod 是否起来
模拟题 2:滚动升级并回滚¶
题目¶
将 app 命名空间中的 web Deployment 镜像升级为 nginx:1.26,确认升级完成后再回滚到上一个版本。
标准解法¶
k set image deployment/web nginx=nginx:1.26 -n app
k rollout status deployment/web -n app
k rollout history deployment/web -n app
k rollout undo deployment/web -n app
k rollout status deployment/web -n app
考点¶
set imagerollout statusrollout historyrollout undo
模拟题 3:用 Service 暴露 Deployment¶
题目¶
为 app 命名空间的 web Deployment 创建一个名为 web-svc 的 ClusterIP Service,对外暴露 80 端口。
标准解法¶
验证点¶
- Service 已创建
- Endpoints 正常生成
模拟题 4:创建 ConfigMap 并挂载环境变量¶
题目¶
在 app 命名空间创建一个名为 app-config 的 ConfigMap,包含键值 ENV=prod,并让某个 Pod 读取该环境变量。
标准解法思路¶
- 先创建 ConfigMap
- 再生成 Pod YAML
- 手动补
env.valueFrom.configMapKeyRef
k create configmap app-config --from-literal=ENV=prod -n app
k run env-test --image=busybox:1.36 -n app --restart=Never --dry-run=client -o yaml -- sh -c 'env && sleep 3600' > pod.yaml
然后在 pod.yaml 中补:
应用后:
模拟题 5:调度到指定节点¶
题目¶
给节点 node01 打上标签 disktype=ssd,然后创建一个 Pod,只允许它调度到该节点。
标准解法¶
k label node node01 disktype=ssd
k run pod-ssd --image=nginx --restart=Never --dry-run=client -o yaml > pod-ssd.yaml
在 YAML 中补:
然后:
模拟题 6:创建 CronJob¶
题目¶
创建一个名为 date-cron 的 CronJob,每 5 分钟执行一次 date。
标准解法¶
模拟题 7:RBAC 授权¶
题目¶
在 dev 命名空间创建一个 ServiceAccount 名为 app-sa,赋予它只读 Pod 的权限。
标准解法¶
k create namespace dev
k create serviceaccount app-sa -n dev
k create role pod-reader --verb=get,list,watch --resource=pods -n dev
k create rolebinding read-pods \
--role=pod-reader \
--serviceaccount=dev:app-sa \
-n dev
k auth can-i list pods --as=system:serviceaccount:dev:app-sa -n dev
模拟题 8:PVC 挂载¶
题目¶
创建一个 1Gi 的 PVC,名称为 data-pvc,并让一个 nginx Pod 把它挂载到 /usr/share/nginx/html。
标准解法思路¶
- 先写 PVC YAML
- 再写 Pod YAML
- 补
volumes和volumeMounts
验证¶
模拟题 9:排查 Pod Pending¶
题目¶
某个 Pod 一直处于 Pending,请找出原因并修复。
标准解法模板¶
优先看:
FailedScheduling- requests 是否过大
- taint / toleration
- affinity
- PVC
标准作答思路¶
- 如果是资源不足,就调小请求或换可用节点
- 如果是 taint 问题,就补 toleration
- 如果是 selector / affinity 太严,就修改调度约束
- 如果是 PVC,就排查存储绑定
模拟题 10:排查 CrashLoopBackOff¶
题目¶
某个 Pod 一直 CrashLoopBackOff,请排查并恢复服务。
标准解法模板¶
高频原因¶
- 启动命令错误
- 配置文件错误
- 环境变量缺失
- 探针误杀
- OOMKilled
模拟题 11:排查 Service 不通¶
题目¶
某 Service 已创建,但集群内访问失败,请定位问题。
标准解法模板¶
检查顺序¶
- selector 是否匹配
- Pod 是否 Ready
- targetPort 是否正确
- NetworkPolicy 是否放通
模拟题 12:节点维护¶
题目¶
将 node01 标记为不可调度,驱逐其上业务 Pod,维护完成后重新恢复调度。
标准解法¶
模拟题 13:切换上下文后操作资源¶
题目¶
先切换到指定 context,再在目标 namespace 内完成资源修改。
标准解法¶
易错点¶
- 忘记切 context
- 在错误集群里做对了操作
模拟题 14:NetworkPolicy¶
题目¶
为某应用添加一条策略:默认拒绝 ingress,仅允许 team-a namespace 中带指定标签的 Pod 访问其 80 端口。
标准解法思路¶
- 先写默认拒绝策略
- 再写精确放通策略
- 最后用临时 Pod 验证
模拟题 15:综合小题¶
题目¶
在指定命名空间中创建一个 Deployment、暴露 Service、挂 ConfigMap,并保证它只运行在带特定标签的节点。
这道题想训练什么¶
- 一次串起工作负载、配置、网络、调度
- 训练你在多步骤题目里的节奏控制
标准做题节奏¶
你以后做任何 CKA 模拟题,都建议用这个答题框架:
- 先看 context 和 namespace
- 再识别资源类型
- 优先生成 YAML 骨架
- 再补题目要求字段
- 最后验证结果
下一步怎么用¶
这页更适合:
- 你已经懂大方向,开始做题
- 想看“标准做法”而不是只看结论
- 想把错误题型归类复盘
如果继续强化,最有效的方式是把这些题目逐个搬进本地集群实际做一遍。