第15章 Kafka への接続

Apache Kafka はデータの取得およびパブリッシュに使用できる分散ストリーミングプラットフォームです。インテグレーションでは、指定した Kafka トピックからデータをサブスクライブでき、または指定した Kafka トピックにデータを公開することもできます。これには、Fuse Online を有効にし、クラスターの Kafka ブローカーを検出します。その後、Kafka へのコネクションを作成し、そのコネクションをインテグレーションフローに追加します。詳細は以下を参照してください。

15.1. Kafka ブローカー/AMQ Streams の自動検出の有効化

インテグレーションで、AMQ Streams インスタンスである Kafka ブローカーに接続する予定である場合は、Kafka コネクションを作成する前に、このようなブローカーの自動検出を有効にします。これにより、コネクションの設定に必要な Kafka ブローカーの詳細が Fuse Online によって提供されるため、Kafka コネクションの作成が容易になります。

自動検出を有効にするには、クラスターのリソースを確認できる権限を OpenShift ユーザーアカウントにクラスターに付与します。特定の権限をアカウントに付与すると、ブローカーの異なるサブセットを検出できるようになります。

注記

OpenShift 4.5 では、Kafka ブローカーの自動検出の有効化はサポートされていません。Kafka ブローカーに接続するには、Kafka ブローカーの URI (host:port 形式) を知っている必要があります。

前提条件

  • オンサイトで Fuse Online を OCP 上で稼働している必要があります。
  • oc クライアントツールがインストール済みで、Kafka ブローカーの自動検出を有効にするクラスターに接続されている必要があります。
  • クラスターの管理者権限が必要です。
  • インテグレーションで接続する Kafka ブローカー (AMQ Streams インスタンス) が Fuse Online と同じクラスターにインストールされている必要があります。

手順

  1. クラスター管理者権限を持つアカウントで OpenShift にログインします。以下に例を示します。

    $ oc login -u admin -p admin
  2. 現在のプロジェクトが Fuse Online で稼働しているプロジェクトであることを確認します。現在のプロジェクトを表示するには、以下のコマンドを実行します。

    $ oc project
  3. クラスターの Kafka ブローカーが oc ユーザーアカウントにアクセスできるようにするための権限を付与します。クラスターの設定方法によって、付与する必要のある権限が決まります。たとえば、minishift 上の Strimzi クラスターの場合、以下を行うことができます。

    1. クラスターの Kafka/Strimzi リソースにアクセスできるクラスターロールを作成します。以下の例では、kafkas.kafka.strimzi.io-view が新規ロールの名前になります。

      oc create clusterrole kafkas.kafka.strimzi.io-view --verb=get,list --resource=kafkas --resource=crd
    2. このクラスターロールを oc ユーザーに追加します。以下の例では、syndesis-serveroc ユーザーアカウントの名前になります。

      oc adm policy add-cluster-role-to-user kafkas.kafka.strimzi.io-view -z syndesis-server

結果

Fuse Online で Kafka コネクションを作成すると、コネクション設定ページに利用できる Kafka ブローカーが表示されます。コネクションがアクセスするブローカーを選択します。