测验:为什么要 CRD
应用CRD时,API服务器不是“免费”提供的吗?
- 按照CR宣布的,浮动板的动作
- 基于结构化的验证和基本值注入
- etcd存储和watch流
- 资源单位RBAC和审计日志
用CR代替Helm values时获得的最结构化的好处是什么?
- 错误的值不是在发布时分,而是在apply时被拒绝。
- 模板语法消失,需要编写的YAML大大减少。
- 缺少了进入图表中的设置,容器图像大小会变小。
- 没有重新渲染图表,所以集群升级变得更容易。
以下中不制作CRD比较好的情况是?
- 试图将凌晨故障中有人介入的恢复程序转换为代码。
- 仅使用Deployment和HPA部署足够的状态less网络应用程序
- 数据库的故障转移和备份验证也需要自动化。
- 必须将标准化的部署接口作为API提供给多个团队。
表示字段间限制(例如:prod层的话,复制件2以上)的2026年基准推荐方法是什么?
- 在控制器的reconcile中检查,并记录在status上为错误
- 在CI管道中静态检查Manifest,并在默认阶段进行阻止。
- 在Schema的x-kubernetes-validations中用CEL规则声明
- 启动验证Webhook服务器,在admission阶段检查字段组合
“CRD不是代码,而是API合同”这句话的实际意义是什么?
- CRD应该根据每个群集的不同进行定义,吸收环境差异。
- CRD在控制器准备好后才能部署,否则不会出现错误。
- 一旦公开的字段很难恢复,因为有存储的对象和用户配置文件。
- CRD是声明式YAML,不能在Go类型定义中生成。
在考虑引入操作员时,首先需要确认的是什么?
- 团队能否处理Go和控制器运行时间
- 是否有已经很好地管理的官方·社区运营商?
- 是否有足够的余地让始终运行控制器的群集节点
- CRD的组和复数名的名字是什么
为什么可以选择CR作为标签选择器?
- 因为在创建CRD时,在模式中定义了标签选择器字段。
- 因为控制器在缓存CR的同时,单独创建了标签索引。
- 因为kubectl接收了整个列表,在客户端进行过滤。
- 因为CR也是和其他对象一样具有metadata的正式API对象。