Operator 模式与自定义控制器

共 19 题
#

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 相同