2.3. AMQ Streams での Debezium のデプロイ
この手順では、Red Hat OpenShift Container Platform で Debezium のコネクターを設定する方法を説明します。
作業を開始する前に
OpenShift で Apache Kafka および Kafka Connect を設定するには、Red Hat AMQ Streams を使用します。AMQ Streams は、Kafka を OpenShift に取り入れる operator およびイメージを提供します。
ここでは、Kafka Connect S2I(Source to Image)をデプロイおよび使用します。S2I は、アプリケーションのソースコードを入力として受け入れ、アセンブルされたアプリケーションをアウトプットとして実行する新規イメージを生成するイメージをビルドするフレームワークです。
S2I がサポートされる Kafka Connect ビルダーイメージは、registry.redhat.io/amq7/amq-streams-kafka-24:1.4.0
イメージの一部として、Red Hat Container Catalog で提供されます。S2I プロセスは(プラグインおよびコネクターとともに)バイナリーを取得して、/tmp/kafka-plugins/s2i
ディレクトリーに保存します。このディレクトリーから、Kafka Connect デプロイメントとともに使用できる新しい Kafka Connect イメージを作成します。改良されたイメージの使用を開始すると、Kafka Connect は /tmp/kafka-plugins/s2i
ディレクトリーからサードパーティープラグインをロードします。
Kafka Connect S2I をデプロイおよび使用するのではなく、AMQ Streams Kafka イメージに基づいて新しい Dockerfile を作成し、コネクターを含めることができます。
3章Kafka Connect ベースイメージからのコンテナーイメージの作成を参照してください。
この手順では、以下を行います。
- Kafka クラスターを OpenShift にデプロイします。
- Debezium コネクターのダウンロードおよび設定
- コネクターでの Kafka Connect のデプロイ
Kafka クラスターがすでにデプロイされている場合は、最初の手順を省略できます。
Pod 名は AMQ Streams デプロイメントに対応する必要があります。
手順
Kafka クラスターをデプロイします。
- 『 Installing AMQ Streams and deploying components 』の手順に従って、AMQ Streams operator をインストールします。
- 希望の設定を選択し、Kafka Cluster をデプロイし ます。
- Kafka Connect s2i をデプロイします。
これで、Kafka Connect S2I を使用して OpenShift で Kafka クラスターが稼働しました。
Pod が実行されていることを確認します。
$ oc get pods NAME READY STATUS <cluster-name>-entity-operator-7b6b9d4c5f-k7b92 3/3 Running <cluster-name>-kafka-0 2/2 Running <cluster-name>-zookeeper-0 2/2 Running <cluster-name>-operator-97cd5cf7b-l58bq 1/1 Running
Pod の実行の他に、DeploymentConfig が Connect S2I に関連付けられている必要があります。
- リリース 1.0 を選択し、Red Hat Integration のダウンロードサイト からデータベースの Debezium コネクターアーカイブをダウンロード します。
アーカイブを展開して、コネクタープラグインのディレクトリー構造を作成します。
$ tree ./my-plugin/ ./my-plugin/ ├── debezium-connector-mongodb | ├── ... ├── debezium-connector-mysql │ ├── ... ├── debezium-connector-postgres │ ├── ... └── debezium-connector-sqlserver ├── ...
これで Kafka Connect S2I ビルドがトリガーされます。
ビルド設定の名前を確認します。
$ oc get buildconfigs NAME TYPE FROM LATEST <cluster-name>-cluster-connect Source Binary 2
oc start-build
コマンドを使用して、Debezium ディレクトリーを使用して Kafka Connect イメージの新しいビルドを開始します。oc start-build <cluster-name>-cluster-connect --from-dir ./my-plugin/
注記ビルドの名前は、デプロイされた Kafka Connect クラスターと同じになります。
更新されたデプロイメントが実行していることを確認します。
oc get pods NAME READY STATUS <cluster-name>-entity-operator-7b6b9d4c5f-k7b92 3/3 Running <cluster-name>-kafka-0 2/2 Running <cluster-name>-zookeeper-0 2/2 Running <cluster-name>-cluster-connect-2-jw695 1/1 Running <cluster-name>-cluster-connect-2-deploy 0/1 Completed strimzi-cluster-operator-97cd5cf7b-l58bq 1/1 Running
または、OpenShift Web コンソールの Pods ビューに移動して、Pod が実行中であることを確認できます。
Kafka Connect の更新
デプロイメントを更新する必要がある場合は、Debezium ディレクトリーの JAR ファイルを修正し、Kafka Connect を再ビルドします。
デプロイメントの確認
ビルドが完了したら、Kafka Connect のデプロイメントによって新しいイメージが自動的に使用されます。
コネクターが起動すると、ソースに接続し、挿入、更新、削除された各行またはドキュメントのイベントを生成します。
『 Debezium スタートガイド』 の手順に従ってデプロイメントが正しいことを確認します。サービスの起動 には、Kafka クラスターの設定および Kafka Connect の設定手順が記載されています。
特定のコネクターを設定するには、以下を参照してください。