第 8 章 服务发现


使用红帽 3scale API 管理的服务发现功能,您可以从 OpenShift 导入服务。

8.1. 关于服务发现

通过使用服务发现,您可以扫描以查找在同一 OpenShift 集群中运行的可发现 API 服务,并将关联的 API 定义自动导入到 3scale 中。

您还可以随时更新 API 集成和 Open API 规格,然后与集群重新同步它们。

服务发现提供以下功能:

  • 使用集群 API 查询已正确注解用于发现的服务。
  • 配置 3scale 以使用集群内部端点访问服务。
  • 将 Open API 规格(Swagger)导入到版本 2.0 作为 3scale ActiveDocs。
  • 支持 OpenShift 和红帽单点登录(RH SSO)授权流。
  • 使用红帽 Fuse,从 Fuse 版本 7.2 开始.

当您导入可发现的服务时,它会保留其命名空间。

  • 对于 3scale 内部安装,3scale API 供应商可能有自己的命名空间和服务。发现的服务可以与 3scale 现有和本地服务共存。
  • Fuse 可发现服务部署到 Fuse 产品命名空间中。

8.1.1. 可发现服务的标准

API 服务必须满足以下标准,以便 3scale 服务发现才能找到它:

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

    • application/swagger+json
    • application/vnd.oai.openapi+json
    • application/json
  • 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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.