动态准入 Webhook 概述
准入 Webhook 是 HTTP 方式的回调,接收准入请求并对其进行相关操作。可定义两种类型的准入 Webhook,Validating 准入 Webhook 和 Mutating 准入 Webhook。 使用 Validating Webhook,可以通过自定义的准入策略来拒绝请求;使用 Mutating Webhook,可以通过自定义默认值来修改请求。
Istio 使用 ValidatingAdmissionWebhooks
验证 Istio 配置,使用 MutatingAdmissionWebhooks
自动将 Sidecar 代理注入至用户 Pod。
Webhook 设置过程需要了解 Kubernetes 动态准入 Webhook 相关的知识。有关 Validating 和 Mutating Webhook 配置的详细文档,请参考 Kubernetes API。
验证动态准入 Webhook 前置条件
请参阅平台设置说明。如果集群配置错误,Webhook 将无法正常工作。集群配置后,当动态 Webhook 和相关特性不能正常工作时,你可以通过以下步骤进行检查。
- 验证当前是否使用正确版本的
kubectl
和 Kubernetes 服务
$ kubectl version --short
Client Version: v1.10.2
Server Version: v1.10.4-gke.0
admissionregistration.k8s.io/v1beta1
应是启用状态
$ kubectl api-versions | grep admissionregistration.k8s.io/v1beta1
admissionregistration.k8s.io/v1beta1