动态准入 Webhook 概述

来自 Kubernetes 准入控制机制

Istio 使用 ValidatingAdmissionWebhooks 验证 Istio 配置,使用 MutatingAdmissionWebhooks 自动将 Sidecar 代理注入至用户 Pod。

Webhook 设置过程需要了解 Kubernetes 动态准入 Webhook 相关的知识。查阅 Kubernetes API 的相关资料,请参考 Mutating Webhook ConfigurationValidating Webhook Configuration

验证动态准入 Webhook 前置条件

请参阅平台设置说明了解 Kubernetes 提供的详细的设置说明。如果集群配置错误,Webhook 将无法正常工作。集群配置后,当动态 Webhook 和相关特性不能正常工作时,您可以通过以下步骤进行检查。

  1. 验证当前使用正确的 kubectl 和 Kubernetes 服务的版本(1.18, 1.19, 1.20, 1.21):

    $ kubectl version --short
    Client Version: v1.19.0
    Server Version: v1.19.1
    
  2. admissionregistration.k8s.io/v1beta1 应是启用状态

    $ kubectl api-versions | grep admissionregistration.k8s.io/v1
    admissionregistration.k8s.io/v1
    admissionregistration.k8s.io/v1beta1
    
  3. 验证 kube-apiserver --enable-admission-plugins 配置中插件 MutatingAdmissionWebhookValidatingAdmissionWebhook 是否被启用。通过检查指定规范中的标志(--enable-admission-plugins)。

  4. 验证 Kubernetes API Server 与 Webhook 所在 Pod 的网络连通是否正常。例如错误配置 http_proxy 可能干扰 API Server 正常运行(详细信息请参阅 PRIssue)。

这些信息有用吗?
Do you have any suggestions for improvement?

Thanks for your feedback!