测验:mutate 与 generate
我创建了一个命名空间,但生成规则需要创建的 NetworkPolicy 不可见。诊断中最有效的第一步是什么?
- 从头开始逐行重新读取策略 YAML 缩进和字段名称,以确保没有拼写错误。
- 重新启动准入控制器
- 增加 webhook 超时
- 查看 kyverno 命名空间中的 UpdateRequest。如果为空,则匹配失败。如果没有资源,就是后台控制器的问题。
当后台控制器没有创建目标资源的权限时会出现什么症状?
- kubectl apply 立即被拒绝
- 录取成功,资源也不是悄悄创造出来的。
- 发生 webhook 超时错误。
- 该策略未加载且未出现在列表中
将kca.io/owner注释添加为patchesJson6902时,正确的路径是什么?
- /metadata/annotations/kca.io/owner
- /metadata/annotations/kca.io~1owner
- /元数据/注释[kca.io/owner]
- 元数据.annotations.kca.io/owner
在生成中打开“synchronize: true”的正确成本是多少?
- 准入 Webhook 响应时间加倍
- 监视和写入随着目标命名空间数量的增加而增加,成为后台控制器上的恒定负载。
- 策略被强制进入强制模式
- 未创建策略报告
使用 mutate 插入值的操作缺点最准确的指示是什么?
- mutate 只能应用于 Deployment
- mutate 的执行晚于 validate,并且不受检查。
- 输入的值对Git不可见,因此被排除在审查和回滚之外,并且清单和实际对象不同,因此与GitOps工具的偏差检测相冲突。
- mutate 仅适用于后台控制器
patchStrategicMerge 和 patchJson6902 有什么区别?
- 前者用于创建,后者仅用于删除。
- 只有后者可以与 foreach 一起使用
- 前者是 Kubernetes 战略合并,因此数组与名称键合并,后者用 op/path/value 指定确切位置。
- 前者是 Kyverno 特定的语法,后者不是 Kubernetes 标准。