29.2. 可发现服务的标准

如果在 OpenShift(OCP)集群中有 3scale 发现 API 服务,则 OCP 服务必须满足以下每个元素的条件:

Content-Type 标头

API 规格的 Content-Type 标头必须是以下值之一:

  • application/swagger+json
  • application/vnd.oai.openapi+json
  • application/json

OpenShift Service Object YAML 定义

  • OpenShift Service Object YAML 定义必须包含以下元数据:

    • discovery.3scale.net 标签:(必需)设置为 "true"。3scale 执行选择器定义以查找需要发现的所有服务时,它会使用此标签。
    • 以下注解:

      discovery.3scale.net/discovery-version:(可选)3scale 发现过程的版本。

      discovery.3scale.net/scheme :(必需)托管该服务的 URL 的 scheme 部分。可能的值有 "http" 或 "https"。

      discovery.3scale.net/port :(必需)集群中服务的端口号。

      discovery.3scale.net/path :(可选)托管服务的 URL 的相对基本路径。当路径位于 root("/")时,您可以省略此注解。

      discovery.3scale.net/description-path :服务的 OpenAPI 服务描述文档的路径。

      例如:

          metadata:
            annotations:
              discovery.3scale.net/scheme: "https"
              discovery.3scale.net/port: '8081'
              discovery.3scale.net/path: "/api"
              discovery.3scale.net/description-path: "/api/openapi/json"
           labels:
              discovery.3scale.net: "true"
           name: i-task-api
           namespace: fuse
    • 如果您是一个具有管理特权的 OpenShift 用户,您可以在 OpenShift 控制台中查看 API 服务的 YAML 文件:

      1. 选择 Applications> Services
      2. 选择服务,如 i-task-api,以打开其 Details 页面。
      3. 选择 Actions> Edit YAML 以打开 YAML 文件。
      4. 查看完后,选择 Cancel

使用 ovs-networkpolicy 插件的集群

  • 要允许 OpenShift 和 3scale 项目之间的流量,带有 ovs-networkpolicy 插件的集群需要在其应用程序项目中创建 NetworkPolicy 对象。
  • 有关配置 NetworkPolicy 对象的更多信息,请参阅 关于网络策略