第2章 Kafka Bridge を使用するための 3scale のデプロイメント


3scale を Kafka Bridge で使用するには、まず 3scale をデプロイし、次に Kafka Bridge API の検出を設定します。

このシナリオでは、Streams for Apache Kafka、Kafka、Kafka Bridge、および 3scale API Management コンポーネントは、同じ OpenShift クラスターで実行されます。

次の 3scale コンポーネントは、Kafka Bridge の検出に役立ちます。

  • 3scale APIcast は、HTTP クライアントが Kafka Bridge API サービスに接続するための NGINX ベースの API ゲートウェイを提供します。
  • 3scale toolbox は、Kafka Bridge サービスの OpenAPI 仕様を 3scale にインポートするために使用されます。
注記

3scale が Kafka Bridge と同じクラスターにすでにデプロイされている場合は、デプロイメント手順を省略して、現在のデプロイメントを使用できます。

前提条件

3scale デプロイメントの場合:

  • Red Hat 3scale API Management Supported Configurations を確認する
  • インストール用に cluster-admin ロール (system:admin など) を持つユーザーを用意する
  • 以下が記述されている JSON ファイルにアクセスできる。

    • Kafka Bridge OpenAPI 仕様 (openAPIV2.json)
    • Kafka Bridge のヘッダー変更および Routing ポリシー (policies_config.json)

      GitHub で JSON ファイルを探します。

手順

  1. Red Hat 3scale ドキュメント に記載の手順に従って、3scale API Management を設定します。

    1. 3scale API Management Operator を使用して 3scale API Manager と APIcast をインストールします。

      API Manager をデプロイする前に、API Manager カスタムリソースの wildcardDomain プロパティーを、OpenShift クラスターをホストするドメインに更新します。

      ドメインは、3scale 管理ポータルにアクセスするための URL (http[s]://<authentication_token>@3scale-admin.<cluster_domain>) で使用されます。

    2. API Manager カスタムリソースのステータスを確認して、3scale が正常にデプロイされたことを確認します。
  2. 3scale API Manager が Kafka Bridge サービスを検出するように承認を付与します。

    Copy to Clipboard Toggle word wrap
    oc adm policy add-cluster-role-to-user view system:serviceaccount:<my_bridge_namespace>:amp

    このコマンドは、指定した namespace (<my_bridge_namespace>) の Kafka Bridge リソースへの読み取りアクセス (view) を、API Manager (amp) に付与します。

  3. 3scale API Management toolbox をセットアップします。

    1. Red Hat 3scale のドキュメント に記載の手順に従って、3scale toolbox をインストールします。
    2. 3scale と対話できるように環境変数を設定します。

      Kafka Bridge の設定例

      Copy to Clipboard Toggle word wrap
      export REMOTE_NAME=strimzi-kafka-bridge 
      1
      
      export SYSTEM_NAME=strimzi_http_bridge_for_apache_kafka 
      2
      
      export TENANT=strimzi-kafka-bridge-admin 
      3
      
      export PORTAL_ENDPOINT=$TENANT.3scale.net 
      4
      
      export TOKEN=<3scale_authentication_token> 
      5

      1
      REMOTE_NAME は、3scale 管理ポータルのリモートアドレスに割り当てられた名前です。
      2
      SYSTEM_NAME は、3scale toolbox で OpenAPI 仕様をインポートして作成される 3scale サービス/API の名前です。
      3
      TENANT は、3scale 管理ポータルのテナント名です (https://$TENANT.3scale.net)。
      4
      PORTAL_ENDPOINT は、3scale 管理ポータルを実行するエンドポイントです。
      5
      TOKEN は、3scale toolbox または HTTP リクエストを介して対話するために 3scale 管理ポータルによって提供される認証トークンです。
    3. 3scale toolbox のリモート Web アドレスを設定します。

      Copy to Clipboard Toggle word wrap
      podman run -v /path/to/openapiv2.json:/tmp/oas/openapiv2.json registry.redhat.io/3scale-amp2/toolbox-rhel8:3scale2.14 3scale import openapi -d <admin_portal_url> /tmp/oas/openapiv2.json

      3scale toolbox のコンテナーイメージを指定します。3scale のコンテナーイメージは Red Hat Ecosystem Catalog にあります。

      <admin_portal_url> は、3scale 管理ポータルのエンドポイントへのパス (https://$TOKEN@$PORTAL_ENDPOINT/) に置き換えます。これで、toolbox を実行するたびに、3scale 管理ポータルのエンドポイントアドレスを指定する必要がなくなりました。

  4. Cluster Operator デプロイメントに、3scale が Kafka Bridge サービスを検出するために必要なラベルプロパティーおよびアノテーションプロパティーがあることを確認します。

    Copy to Clipboard Toggle word wrap
    #...
    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
    #...

    そうでない場合は、OpenShift コンソールを使用してプロパティーを追加するか、Cluster Operator と Kafka Bridge を 再デプロイし てみてください。

  5. 3scale 管理ポータルから、Red Hat 3scale のドキュメント で説明するように、OpenShift から Kafka Bridge API サービスをインポートします。
  6. OpenAPI 仕様 (JSON ファイル) の Host フィールドを編集して、Kafka Bridge サービスのベース URL を使用します。

    以下に例を示します。

    Copy to Clipboard Toggle word wrap
    "host": "my-bridge-bridge-service.my-project.svc.cluster.local:8080"

    host URL に以下が含まれていることを確認します。

    • Kafka Bridge 名 (my-bridge)
    • プロジェクト名 (my-project)
    • Kafka Bridge のポート (8080)
  7. 更新した OpenAPI 仕様をローカルファイルから 3scale toolbox にインポートします。

    Copy to Clipboard Toggle word wrap
    podman run -v /path/to/openapiv2.json:/tmp/oas/openapiv2.json registry.redhat.io/3scale-amp2/toolbox-rhel8:3scale2.14 3scale import openapi [opts] -d=<admin_portal_url> -t 3scale-kafka-bridge /tmp/oas/openapiv2.json

    ここで、システム名は OpenAPI 仕様から生成するのではなく、3scale-kafka-bridge として指定します。/path/to/openapiv2.json を OpenAPI 仕様ファイルへのパスに置き換え、<admin_portal_url> を 3scale 管理ポータルのエンドポイントへのパスに置き換えます。

  8. サービスの Header Modification および Routing ポリシー (JSON ファイル) をインポートします。

    1. 3scale で作成したサービスの ID を見つけます。これは、ポリシーをインポートするときに必要です。

      Copy to Clipboard Toggle word wrap
      export SERVICE_ID=$(curl -k -s -X GET "https://$PORTAL_ENDPOINT/admin/api/services.json?access_token=$TOKEN" | jq ".services[] | select(.service.system_name | contains(\"$SYSTEM_NAME\")) | .service.id")

      ここでは、リクエストで jq コマンドライン JSON パーサーツールを 使用します。

    2. ポリシーをインポートします。

      Copy to Clipboard Toggle word wrap
      3scale policies import -f /path/to/policies_config.json -d=<admin_portal_url> 3scale-kafka-bridge

      /path/to/policies_config.json をポリシー設定ファイルへのパスに置き換え、<admin_portal_url> を 3scale 管理ポータルのエンドポイントへのパスに置き換えます。

  9. 3scale 管理ポータルから、Kafka Bridge サービスのエンドポイントとポリシーがロードされていることを確認します。
  10. 3scale Toolbox から、アプリケーションプランとアプリケーションを作成します。

    認証のユーザーキーを取得するためにアプリケーションが必要になります。

  11. 実稼働環境用の手順: 実稼働環境のゲートウェイで API を利用可能にするには、設定をプロモートします。

    Copy to Clipboard Toggle word wrap
    3scale proxy-config promote $REMOTE_NAME $SERVICE_ID
  12. API テストツールを使用して、コンシューマーの作成に呼び出しを使用する APIcast ゲートウェイと、アプリケーションに作成されたユーザーキーで、Kafka Bridge にアクセスできることを検証します。

    以下に例を示します。

    Copy to Clipboard Toggle word wrap
    https//my-project-my-bridge-bridge-service-3scale-apicast-staging.example.com:443/consumers/my-group?user_key=3dfc188650101010ecd7fdc56098ce95

    Kafka Bridge からペイロードが返されれば、コンシューマーが正常に作成されています。

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

    ベース URI は、クライアントが以降のリクエストで使用するアドレスです。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.