第 2 章 为 Kafka Bridge 部署 3scale


要将 3scale 与 Kafka Bridge 集成,您需要配置部署来发现 Kafka Bridge API。

在这种情况下,Apache Kafka、Kafka、Kafka Bridge 和 3scale API Management 的流在同一 OpenShift 集群中运行。3scale APIcast 充当基于 NGINX 的 API 网关,允许 HTTP 客户端连接到 Kafka Bridge API 服务。

此流程使用以下 3scale 自定义资源,通过 3scale Operator 管理:

  • OpenAPI 自定义资源来导入 Kafka Bridge OpenAPI 规格
  • 用于导入 Kafka Bridge 路由策略并设置应用程序计划和应用程序的 产品自定义资源
  • ProxyConfigPromote 自定义资源,以提升产品的 APIcast 配置。

有关创建和管理这些资源的详情,请参阅 Red Hat 3scale 文档中的 operator 说明。

注意

如果 3scale 已部署到与 Kafka Bridge 相同的集群中,请跳过部署步骤并使用现有部署。

先决条件

对于 3scale 部署:

流程

  1. 按照 Red Hat 3scale 文档中所述设置 3scale API 管理

    1. 使用 3scale 操作器安装 3scale API Manager 和 APIcast。

      在部署 API Manager 前,更新 APIManager 自定义资源的 wildcardDomain 属性,以匹配您的 OpenShift 集群域。

      域在 URL 中使用用于访问 3scale 管理门户(http[s]://<authentication_token>@3scale-admin.<cluster_domain&gt;)。

    2. 通过检查 APIManager 自定义资源的状态来验证 3scale 部署。
  2. 授权 3scale API Manager 来发现 Kafka Bridge:

    oc adm policy add-cluster-role-to-user view system:serviceaccount:<my_bridge_namespace>:amp

    此命令向指定命名空间中的 Kafka Bridge 资源授予 API Manager (amp)读取访问权限(view)。

  3. 确保 Cluster Operator 部署具有 3scale 发现所需的标签和注解:

    #...
    env:
    - name: STRIMZI_CUSTOM_KAFKA_BRIDGE_SERVICE_LABELS
        value: |
        discovery.3scale.net=true
    - name: STRIMZI_CUSTOM_KAFKA_BRIDGE_SERVICE_ANNOTATIONS
        value: |
        discovery.3scale.net/scheme=http
        discovery.3scale.net/port=8080
        discovery.3scale.net/path=/
        discovery.3scale.net/description-path=/openapi/v3
    #...

    当 Kafka Bridge 中已弃用对 OpenAPI v2 的支持后,/openapi 端点将代表 OpenAPI v3。此时,/openapi/v3 端点将被删除。

    如有必要,通过 OpenShift 控制台更新这些属性,或重新部署 Cluster OperatorKafka Bridge

  4. 在 3scale 管理门户中,按照 Red Hat 3scale 文档所述,从 OpenShift 导入 Kafka Bridge API 服务。
  5. servers 属性添加到 OpenAPI 规格(JSON 文件),以引用基本 Kafka Bridge 服务 URL:

    对 Kafka Bridge 服务 URL 的引用示例

    {
        "openapi": "3.0.0",
        "info": {
          "title": "Kafka Bridge API Reference",
          "description": "The Kafka Bridge provides a REST API
            for integrating HTTP based client applications with
            a Kafka cluster. You can use the API to create and
            manage consumers and send and receive records over
            HTTP rather than the native Kafka protocol. ",
            "version": "0.1.0"
        },
        "servers": [
          {
            "url": "https://my-bridge-bridge-service.my-project.svc.cluster.local:8080"
          }
        ],
        "paths": {

    确保 服务器 URL 包含以下内容:

    • Kafka Bridge name (my-bridge)
    • 项目名称(my-project)
    • Kafka Bridge 的端口(8080)
  6. 通过创建 OpenAPI 自定义资源来导入 Kafka Bridge OpenAPI 规格。

    在创建 OpenAPI 自定义资源时,3scale Operator 会自动创建一个 3scale 产品自定义资源,其中包含服务 ID。

  7. 通过导入 Kafka Bridge 路由策略(policies_config.json)来更新 Product 自定义资源。
  8. 在 3scale 管理门户中,检查 Kafka Bridge 服务的端点和策略是否已加载。
  9. 更新 Product 自定义资源以设置应用程序计划和应用程序。

    应用程序是获取用于身份验证的用户密钥所必需的。

  10. (用于生产环境)通过创建一个 ProxyConfigPromote 自定义资源来提升产品的 APIcast 配置。
  11. 使用使用者创建调用和为应用程序生成的用户密钥,验证通过 APIcast 网关对 Kafka Bridge 的 API 访问。

    例如:

    https//my-project-my-bridge-bridge-service-3scale-apicast-staging.example.com:443/consumers/my-group?user_key=3dfc188650101010ecd7fdc56098ce95

    如果从 Kafka Bridge 返回响应有效负载,则已成功创建使用者。

    {
      "instance_id": "consumer1",
      "base uri": "https//my-project-my-bridge-bridge-service-3scale-apicast-staging.example.com:443/consumers/my-group/instances/consumer1"
    }

    Base URI 是客户端用于后续请求的地址。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部