第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 と同じクラスターにインストールされている必要があります。
手順
クラスター管理者権限を持つアカウントで OpenShift にログインします。以下に例を示します。
$ oc login -u admin -p admin
現在のプロジェクトが Fuse Online で稼働しているプロジェクトであることを確認します。現在のプロジェクトを表示するには、以下のコマンドを実行します。
$ oc project
クラスターの Kafka ブローカーが
ocユーザーアカウントにアクセスできるようにするための権限を付与します。クラスターの設定方法によって、付与する必要のある権限が決まります。たとえば、minishift 上の Strimzi クラスターの場合、以下を行うことができます。クラスターの Kafka/Strimzi リソースにアクセスできるクラスターロールを作成します。以下の例では、
kafkas.kafka.strimzi.io-viewが新規ロールの名前になります。oc create clusterrole kafkas.kafka.strimzi.io-view --verb=get,list --resource=kafkas --resource=crd
このクラスターロールを
ocユーザーに追加します。以下の例では、syndesis-serverがocユーザーアカウントの名前になります。oc adm policy add-cluster-role-to-user kafkas.kafka.strimzi.io-view -z syndesis-server
結果
Fuse Online で Kafka コネクションを作成すると、コネクション設定ページに利用できる Kafka ブローカーが表示されます。コネクションがアクセスするブローカーを選択します。