9.4.2. 验证准入插件
在准入过程的验证阶段会调用验证准入插件。在此阶段,可以在特定的 API 资源强制不能改变,以确保资源不会再次更改。Pod Node Selector 也是一个 webhook 示例,它由验证准入插件调用,以确保所有 nodeSelector
字段均受命名空间的节点选择器限制。
验证准入插件配置示例
apiVersion: admissionregistration.k8s.io/v1beta1 kind: ValidatingWebhookConfiguration 1 metadata: name: <webhook_name> 2 webhooks: - name: <webhook_name> 3 clientConfig: 4 service: namespace: default 5 name: kubernetes 6 path: <webhook_url> 7 caBundle: <ca_signing_certificate> 8 rules: 9 - operations: 10 - <operation> apiGroups: - "" apiVersions: - "*" resources: - <resource> failurePolicy: <policy> 11 sideEffects: Unknown
- 1
- 指定验证准入插件配置。
- 2
ValidatingWebhookConfiguration
对象的名称。将<webhook_name>
替换为适当的值。- 3
- 要调用的 webhook 的名称。将
<webhook_name>
替换为适当的值。 - 4
- 如何连接、信任和将数据发送到 webhook 服务器的信息。
- 5
- 创建前端服务的命名空间。
- 6
- 前端服务的名称。
- 7
- 用于准入请求的 webhook URL。将
<webhook_url>
替换为适当的值。 - 8
- 为 webhook 服务器使用的服务器证书签名的 PEM 编码的 CA 证书。将
<ca_signing_certificate>
替换为采用 base64 格式的适当证书。 - 9
- 定义 API 服务器何时应使用此 webhook 准入插件的规则。
- 10
- 一个或多个触发 API 服务器调用此 webhook 准入插件的操作。可能的值包括
create
、update
、delete
或connect
。将<operation>
和<resource>
替换为适当的值。 - 11
- 指定如果 webhook 服务器不可用时策略应如何执行。将
<policy>
替换为Ignore
(在失败时无条件接受请求)或Fail
(拒绝失败的请求)。使用Ignore
可能会为所有客户端造成无法预计的行为。