配置网络钩子超时时间

本页面介绍如何为 Config Connector 配置 Webhook 超时时间。 您可以在 Config Connector 1.110 版及更高版本中配置这些 webhook。

为验证网络钩子配置超时

您可以配置以下验证网络钩子:

  • deny-immutable-field-updates.cnrm.cloud.google.com
  • deny-unknown-fields.cnrm.cloud.google.com
  • iam-validation.cnrm.cloud.google.com
  • resource-validation.cnrm.cloud.google.com
  • abandon-on-uninstall.cnrm.cloud.google.com

例如,您可以创建并应用以下示例 YAML 文件,以配置验证 Webhook deny-immutable-field-updates.cnrm.cloud.google.comdeny-unknown-fields.cnrm.cloud.google.com 的超时时间。这些 webhook 是 validating-webhook.cnrm.cloud.google.com 验证 webhook 配置的一部分。

  1. 创建名为 configure-validating-webhook-timeout.yaml 的文件并将以下 YAML 复制到其中:

    apiVersion: customize.core.cnrm.cloud.google.com/v1beta1
    kind: ValidatingWebhookConfigurationCustomization
    metadata:
      name: validating-webhook
    spec:
      webhooks:
      - name: deny-immutable-field-updates
        timeoutSeconds: 12
      - name: deny-unknown-fields
        timeoutSeconds: 15
    
  2. 使用 kubectl apply 将网络钩子超时自定义设置应用到您的集群:

    kubectl apply -f configure-validating-webhook-timeout.yaml
  3. 运行以下命令以验证配置是否成功:

    kubectl get validatingwebhookconfigurationcustomizations validating-webhook -o jsonpath='{.status.healthy}{"\n"}'

    它应显示 status.healthy 字段设置为 true

  4. 验证新的自定义超时时间是否已应用于目标 webhook:

    kubectl get validatingwebhookconfigurations validating-webhook.cnrm.cloud.google.com -o jsonpath='{.webhooks[?(@.name=="deny-immutable-field-updates.cnrm.cloud.google.com")].timeoutSeconds}{"\n"}'
    kubectl get validatingwebhookconfigurations validating-webhook.cnrm.cloud.google.com -o jsonpath='{.webhooks[?(@.name=="deny-unknown-fields.cnrm.cloud.google.com")].timeoutSeconds}{"\n"}'

    应用自定义设置可能需要几分钟时间。

为变更 Webhook 配置超时时间

您可以配置以下更改性 webhook:

  • container-annotation-handler.cnrm.cloud.google.com
  • generic-defaulter.cnrm.cloud.google.com
  • iam-defaulter.cnrm.cloud.google.com
  • management-conflict-annotation-defaulter.cnrm.cloud.google.com

例如,您可以通过创建并应用以下示例 YAML 文件来配置变异 Webhook container-annotation-handler.cnrm.cloud.google.com 的超时时间。webhook 是mutating-webhook.cnrm.cloud.google.com 变更 webhook 配置的一部分。

  1. 创建名为 configure-mutating-webhook-timeout.yaml 的文件并将以下 YAML 复制到其中:

    apiVersion: customize.core.cnrm.cloud.google.com/v1beta1
    kind: MutatingWebhookConfigurationCustomization
    metadata:
      name: mutating-webhook
    spec:
      webhooks:
      - name: container-annotation-handler
        timeoutSeconds: 20
    
  2. 使用 kubectl apply 将网络钩子超时自定义设置应用到您的集群:

    kubectl apply -f configure-mutating-webhook-timeout.yaml
  3. 运行以下命令以验证配置是否成功:

    kubectl get mutatingwebhookconfigurationcustomizations mutating-webhook -o jsonpath='{.status.healthy}{"\n"}'

    它应显示 status.healthy 字段设置为 true

  4. 验证新的自定义超时时间是否已应用于目标 webhook:

    kubectl get mutatingwebhookconfigurations mutating-webhook.cnrm.cloud.google.com -o jsonpath='{.webhooks[?(@.name=="container-annotation-handler.cnrm.cloud.google.com")].timeoutSeconds}{"\n"}'

    应用自定义设置可能需要几分钟时间。