测验:平台 API 与抽象
当创建平台 API 作为 CRD 而不是内部 Web 应用程序时,什么不是“免费”的?
- 通过RBAC授权和审计日志
- 基于
resourceVersion的乐观并发控制与监视 - 查看 CR 并创建实际工作负载的调整逻辑
- 通过 OpenAPI 模式请求验证
CRD模式中的default: 2有什么作用?
- kubectl在本地填写值并发送给服务器
- 控制器将值填充到调整循环中
- 当没有值时拒绝请求
- API 服务器在保存时填写该值,因此即使省略该字段,搜索时也会包含该值。
租户团队创建的自定义资源范围设置为Cluster会出现什么问题?
- 无法用kubectl查询
- 由于名称是集群范围的,租户之间名称冲突,并且只能通过 ClusterRole 授予权限,难以划定界限。
- OpenAPI 架构验证在集群范围内不起作用。
- GitOps 工具无法管理它
如果我在requests.cpu设置为 ResourceQuota 的命名空间中创建 pod 时未指定资源请求会怎样?
- 总是成功,请求计数为0
- 配额自动增加
- 如果LimitRange没有提供默认值,Pod创建会被拒绝
- Pod 已创建但未调度
在平台抽象中留下逃生舱口的最合适理由是什么?
- 因为如果没有逃生路线,CRD 模式验证就不起作用。
- 因为如果团队遇到不受支持的需求并完全放弃平台并返回原始 YAML,他们就不会再回来。
- 因为 Kubernetes 需要一个逃生路线字段。
- 因为使用逃生路线可以降低平台成本
为什么人类要在 GPU 节点上定义像gpu.homelab/tier=xlarge这样基于语义的标签?
- 因为自动标注工具无法标注
- 因为Kubernetes根本不承认GPU是可调度的资源。
- 因为标签越多,调度就越快。
- 对于自动标记,内存大小是一个字符串,因此无法创建“上方/下方”比较选择器,并且我想按所需的权重类别而不是卡型号名称来选择工作负载。