7.3. Webhook 准入插件


除了 Red Hat OpenShift Service on AWS 默认准入插件外,也可以通过称为 webhook 服务器的 webhook 准入插件来实施动态准入,从而扩展准入链的功能。Webhook 服务器通过 HTTP 在定义的端点调用。

Red Hat OpenShift Service on AWS 中有两个类型的 webhook 准入插件:

  • 在准入过程中, 变异(mutating)准入插件可以执行任务,如注入关联性标签。
  • 在准入过程结束时,验证(validating)准入插件会用来确保对象被正确配置。例如,确保关联性标签与预期一样。如果验证通过,Red Hat OpenShift Service on AWS 会按照配置来调度对象。

当 API 请求到来时,变异或验证准入插件会使用配置中的外部 webhook 列表,并并行调用它们:

  • 如果所有 webhook 都批准请求,准入链将继续。
  • 如果任何 webhook 拒绝了请求,则拒绝准入请求。而拒绝的原因是第一个拒绝的原因。
  • 如果多个 webhook 拒绝准入请求,则只有第一个拒绝原因返回给用户。
  • 如果在调用 webhook 时遇到错误,请求将被拒绝。或者根据错误策略的设置,webhook 会被忽略。如果错误策略被设置为 Ignore,则失败时请求将被无条件接受。如果策略被设置为 Fail,失败时请求将被拒绝。使用 Ignore 可能会为所有客户端造成无法预计的行为。

下图演示了调用多个 webhook 服务器的序列准入链进程。

图 7.1. 带有变异准入插件和验证准入插件的 API 准入链

API 准入阶段

webhook 准入插件用例示例。在这个示例中,所有 pod 都必须具有一组通用标签。在本例中,变异准入插件可以注入标签,验证准入插件可以检查标签是否如预期。随后,Red Hat OpenShift Service on AWS 会调度包含所需标签的 pod,并拒绝那些不需要的 pod。

Webhook 准入插件常见使用案例包括:

  • 命名空间保留。
  • 限制由 SR-IOV 网络设备插件管理的自定义网络资源。
  • Pod 优先级类验证。
注意

Red Hat OpenShift Service on AWS 中的最大默认 webhook 超时值为 13 秒,且无法更改。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.