Webhook Mode

    具体来说,当在判断用户权限时, 模式会使 Kubernetes 查询外部的 REST 服务。

    Webhook 模式需要一个 HTTP 配置文件,通过 —authorization-webhook-config-file=SOME_FILENAME 的参数声明。

    配置文件的格式使用 kubeconfig。在文件中,”users” 代表着 API 服务器的 webhook,而 “cluster” 代表着远程服务。

    使用 HTTPS 客户端认证的配置例子:

    需要注意的是 webhook API 对象与其他 Kubernetes API 对象一样都同样都服从 。实施人员应该了解 beta 对象的更宽松的兼容性承诺,同时确认请求的 “apiVersion” 字段以确保能被正确地反序列化。此外,API 服务器还必须启用 authorization.k8s.io/v1beta1 API 扩展组(—runtime-config=authorization.k8s.io/v1beta1=true)。

    一个请求内容的例子:

    远程服务被预期能填写请求和反馈的 SubjectAccessReviewStatus 字段,无论是允许访问还是拒绝访问。反馈内容的 “spec” 字段是被忽略的,也是可以被省略的。当请求是被允许的时候,返回的响应如下例所示:

    如拒绝,远程服务器会返回:

    非资源类的路径包括:/api, /apis, , /resetMetrics,/logs, /debug, /healthz, /swagger-ui/, /swaggerapi/, , and/version。 客户端需要访问 /api, /api/, /apis, /apis/, 和 /version 以便能发现服务器上有什么资源和版本。对于其他非资源类的路径访问在没有 REST API 访问限制的情况下拒绝。

    更多信息可以参考 uthorization.v1beta1 API 对象和webhook.go.

    此页是否对您有帮助?

    感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问.在 GitHub 仓库上登记新的问题报告问题或者.