ValidatingWebhookConfiguration
https://kubernetes.io/zh-cn/docs/reference/kubernetes-api/extend-resources/validating-webhook-configuration-v1/
这是一个 Kubernetes 的 ValidatingWebhookConfiguration
资源的 YAML 定义,它用于配置验证 webhook。Webhook 是 Kubernetes 中的一种动态拦截器,可以在资源对象的创建、更新或删除之前或之后触发。验证 webhook 用于对资源对象进行校验,确保它们符合特定的规范或约束。
下面是对这个 YAML 文件中关键部分的解释:
-
kind: ValidatingWebhookConfiguration
:指定了这个资源是ValidatingWebhookConfiguration
类型。 -
metadata
:包含了资源的元数据,如创建时间、版本、标签等。这些标签通常用于标识资源的用途或归属。 -
webhooks
:这是一个列表,包含了一个或多个 webhook 配置。每个 webhook 定义了如何与外部服务通信以进行资源验证。-
admissionReviewVersions
:指定了这个 webhook 支持的版本,这里是v1beta1
和v1
。 -
clientConfig
:定义了如何连接到 webhook 服务。caBundle
:包含了用于验证 webhook 服务 TLS 证书的 CA 证书。service
:定义了 webhook 服务的名称、命名空间、路径和端口。在这个例子中,服务名称是istiod
,命名空间是qfusion
,路径是/validate
,端口是443
。
-
failurePolicy
:定义了如果 webhook 服务失败时的策略。这里是Fail
,意味着如果 webhook 服务失败,请求将被拒绝。 -
matchPolicy
:定义了如何选择应用这个 webhook。这里是Equivalent
,意味着只有当namespaceSelector
和objectSelector
都匹配时才应用。 -
name
:为这个 webhook 定义了一个名称,这里是rev.validation.istio.io
。 -
namespaceSelector
和objectSelector
:定义了选择器来确定 webhook 应该应用于哪些命名空间或对象。在这个例子中,objectSelector
指定了只对带有标签istio.io/rev: default
的对象应用 webhook。 -
rules
:定义了 webhook 应该应用于哪些 API 组、版本、操作和资源。在这个例子中,它适用于security.istio.io
、networking.istio.io
、telemetry.istio.io
和extensions.istio.io
这些 API 组的所有版本和资源,操作包括CREATE
和UPDATE
。 -
sideEffects
:描述了 webhook 是否有副作用。这里是None
,意味着没有副作用。 -
timeoutSeconds
:定义了 webhook 请求的超时时间,这里是10
秒。
-
这个特定的 ValidatingWebhookConfiguration
是为 Istio 的 istiod
服务配置的,用于验证 Istio 资源对象是否符合预期的规范。通过这种方式,Istio 可以确保在 Kubernetes 集群中部署的服务网格资源是有效的,并且符合安全和配置要求。
因篇幅问题不能全部显示,请点此查看更多更全内容