Kubernetes Webhook 授权模式是一种基于 HTTP 回调的访问控制模型,它可以通过向外部 Web 服务发送请求来判断用户是否有权限访问 Kubernetes 集群中的资源。
在使用 Webhook 授权模式时,管理员需要定义一个 HTTP 回调 URL,然后将该 URL 注册到 Kubernetes API Server 中。当用户发起请求时,API Server 会将请求信息发送到该 URL 上,并等待一个命名为 “status” 的 JSON 对象作为响应。
Webhook 授权模式中的回调服务可以进行各种自定义逻辑来决定用户是否有权限访问集群中的资源。例如,它可以查询 LDAP 或 Active Directory 来获取用户组成员身份、检查 JWT token 签名或者从 RBAC 角色映射文件中读取策略。
下面是一个示例 webhook 配置:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-auth-config
data:
authz.yaml: |
clusterName: my-k8s-cluster
endpoint: https://my-webhook-service-endpoint.com/authz-check
这个配置表明了 webhook 认证所需要的参数:集群名称和认证服务端点 URL。
要启用 Webhook 授权模式,管理员需要在 kube-apiserver 的启动参数中添加 –authorization-mode=Webhook,并指定配置文件路径(通过 –authorization-webhook-config-file 选项)。另外还需启动 webhook 容器并监听 API 请求。




