# 1. Operator 模式核心中 CRD 与 reconcile 循环如何把运维知识(备份、扩容、升级)编码为自动化 A Operator 无法自动化备份 B CRD 不参与运维 C reconcile 只做一次 D Operator 用 CRD 声明期望状态并自动运维 ✓ 正确答案
# 2. controller-runtime 抽象中 Manager、Controller、Reconciler、Cache、Client 的分工与启动流程 A Cache 提供直连写 B Reconciler 负责监听资源 C Manager 统筹 controller 的启动与生命周期 ✓ 正确答案 D Client 只读
# 3. reconcile 循环机制中期望状态与当前状态对比、事件触发、requeue 与幂等性要求 A reconcile 必须幂等 ✓ 正确答案 B requeue 用于停止循环 C 事件不触发 reconcile D 幂等性不必要
# 4. Admission webhook 在 Operator 中的角色中默认值注入、校验、failurePolicy 与故障模式 A validating webhook 校验 CR 合法性 ✓ 正确答案 B mutating webhook 校验 C failurePolicy: Fail 会忽略错误 D webhook 无需证书
# 5. CRD 设计中版本与 conversion、status 子资源、scale 子资源、schema 校验与 CEL 规则 A scale 子资源管版本 B status 子资源使 status 独立只读存储 ✓ 正确答案 C CEL 用于镜像校验 D schema 只校验版本
# 6. Operator 升级与生命周期中 CRD 演进、webhook 与控制器版本配套、回滚与兼容策略 A webhook 可单独升级 B CRD 升级需多版本兼容存量 CR ✓ 正确答案 C CRD 升级无需备份 D 回滚总是一致
# 7. Operator 可观测性中 reconcile 次数/时长/失败率、workqueue 深度与事件指标化 A 事件无法指标化 B reconcile 时长无法统计 C workqueue 深度反映处理积压 ✓ 正确答案 D Operator 无内置指标
# 8. finalizer 语义中删除保护与异步清理、finalizer 卡住导致对象无法删除的排查 A finalizer 加速删除 B finalizer 存在时对象不会真正删除 ✓ 正确答案 C finalizer 卡住不影响删除 D 控制器无需处理 finalizer
# 9. kubebuilder 与 Operator SDK 选型中脚手架、代码生成(deepcopy/CRD manifests)与测试框架差异 A 两者都无法测试 B kubebuilder 只生成 CRD C Operator SDK 支持 Helm/Ansible 写 Operator ✓ 正确答案 D deepcopy 需手写
# 10. 主流 Operator 运维实践中 Prometheus Operator、Strimzi、etcd-operator 如何用 CRD 简化运维 A Operator 无法简化运维 B Strimzi 管理 Prometheus C etcd-operator 管理 Kafka D Prometheus Operator 用 CRD 管理监控配置 ✓ 正确答案
# 11. 控制器与 API Server 交互中 informer/watch/cache、事件处理与限速队列(workqueue)机制 A 事件不经过 workqueue B informer 直接读写 API C workqueue 带限速与去重 ✓ 正确答案 D resync 无作用
# 12. 控制器高可用中 Leader Election(lease)机制、多副本运行与 leader 切换的优雅过渡 A 切换无缓存重建 B 多副本都执行 reconcile C Lease 用于存储数据 D Leader Election 保证单副本执行 reconcile ✓ 正确答案
# 13. CRD 的 status conditions 与事件上报中如何用 conditions(Available/Progressing/Degraded)表达资源状态以及与 kubectl 展示和告警的衔接? A Available/Progressing/Degraded 表达资源状态 ✓ 正确答案 B conditions 只在 spec 中 C kubectl 无法展示 conditions D conditions 不能用于告警
# 14. Operator 的性能与并发控制中 reconcile 并发数、workqueue 限速与批量事件合并以及慢 reconcile 的排队与并发上限如何设置? A 慢 reconcile 不会排队 B workqueue 不会合并事件 C MaxConcurrentReconciles 控制并发 worker 数 ✓ 正确答案 D 并发无法配置
# 15. Operator 的配置与扩展点中 ControllerConfig、环境变量与 feature gate 如何设计以避免把业务配置硬编码进控制器? A 用 ConfigMap/flag/env 管理配置避免硬编码 ✓ 正确答案 B feature gate 用于业务数据 C 业务配置应硬编码 D 无法配置 Operator
# 16. 多版本 CRD 兼容中 v1alpha1 到 v1 的 conversion webhook、字段废弃策略与客户端迁移如何保证存量资源平滑升级? A 客户端无需迁移 B 存量资源升级会丢失 C 字段废弃立即删除 D conversion webhook 在版本间转换对象 ✓ 正确答案
# 17. Operator RBAC 与多租户中 cluster-scoped 与 namespace-scoped 控制器、最小权限清单设计 A 最小权限无需关注 B cluster-scoped 用 Role C namespace-scoped 控制器用 Role 限定权限 ✓ 正确答案 D 多租户共享权限
# 18. Operator 测试中 envtest、表驱动 reconcile 测试与故障注入如何验证控制器正确性 A 表驱动测试只能测 API B envtest 启动本地 control plane 做集成测试 ✓ 正确答案 C 故障注入无意义 D 控制器无法测试
# 19. 从脚本运维到 Operator 的演进中何时值得写 Operator 以及与 CronJob、工作流平台的边界 A 定时任务用 Operator B 需要持续期望状态与自愈时值得写 Operator ✓ 正确答案 C 工作流平台维护期望状态 D Operator 与 CronJob 相同