2.3. AMQ Streams での Debezium のデプロイ
Red Hat OpenShift Container Platform で Debezium コネクターを設定するには、Kafka クラスターを OpenShift にデプロイし、Debezium コネクターをダウンロードおよび設定して、コネクターで Kafka Connect をデプロイします。
前提条件
- Red Hat AMQ Streams を使用して OpenShift で Apache Kafka および Kafka Connect が設定済みである。AMQ Streams は、Kafka を OpenShift に取り入れる operator およびイメージを提供します。
- Podman または Docker がインストールされている。
手順
Kafka クラスターをデプロイします。Kafka クラスターがすでにデプロイされている場合は、以下の 3 つのサブステップを省略します。
- AMQ Streams のインストールおよびコンポーネントのデプロイ の手順にしたがって、AMQ Streams operator をインストールします。
- 希望の設定を選択し、Kafka Cluster をデプロイ します。
- Kafka Connect をデプロイします。
これで、Kafka Connect を使用して OpenShift で実行されている Kafka クラスターを利用できます。
Pod が稼働していることを確認します。Pod 名は AMQ Streams デプロイメントに対応します。
$ 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 の実行の他に、Kafka Connect に関連付けられた DeploymentConfig が必要です。
- Red Hat Integration のダウンロードサイト に移動します。
- データベースの Debezium コネクターアーカイブをダウンロードします。
アーカイブを展開して、コネクタープラグインのディレクトリー構造を作成します。複数のアーカイブをダウンロードおよび展開した場合、構造は以下のようになります。
$ tree ./my-plugins/ ./my-plugins/ ├── debezium-connector-db2 | ├── ... ├── debezium-connector-mongodb | ├── ... ├── debezium-connector-mysql │ ├── ... ├── debezium-connector-postgres │ ├── ... └── debezium-connector-sqlserver ├── ...
registry.redhat.io/amq7/amq-streams-kafka-26-rhel7:1.6.0
をベースイメージとして使用して、新規のDockerfile
を作成します。FROM registry.redhat.io/amq7/amq-streams-kafka-26-rhel7:1.6.0 USER root:root COPY ./my-plugins/ /opt/kafka/plugins/ USER 1001
コンテナーイメージをビルドします。前の手順で作成した
Dockerfile
がカレントディレクトリーにある場合は、以下のコマンドのいずれかを入力します。podman build -t my-new-container-image:latest .
docker build -t my-new-container-image:latest .
カスタムイメージをコンテナーレジストリーにプッシュします。以下のいずれかのコマンドを実行します。
podman push my-new-container-image:latest
docker push my-new-container-image:latest
新しいコンテナーイメージを示します。Debezium コネクターを実行するために作成したイメージの名前を指定するため、以下のいずれかのタスクを実行します。
KafkaConnect
カスタムリソースのspec.image
フィールドを編集します。このプロパティーを設定すると、値は Cluster Operator の
STRIMZI_DEFAULT_KAFKA_CONNECT_IMAGE
変数を上書きします。以下に例を示します。apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaConnect metadata: name: my-connect-cluster annotations: strimzi.io/use-connector-resources: "true" spec: #... image: my-new-container-image
-
install/cluster-operator/050-Deployment-strimzi-cluster-operator.yaml
ファイルのSTRIMZI_DEFAULT_KAFKA_CONNECT_IMAGE
変数を編集し、新しいコンテナーイメージを示すようにした後、Cluster Operator を再インストールします。このファイルを編集する場合は、これを OpenShift クラスターに適用する必要があります。
Kafka Connect デプロイメントによって、新しいイメージの使用が開始されます。
次のステップ
デプロイする各 Debezium コネクターに、コネクターインスタンスを設定する
KafkaConnect
カスタムリソースを作成し、適用します。これにより、設定されたデータベースに対してコネクターの実行が開始されます。コネクターが起動すると、設定されたデータベースに接続し、挿入、更新、および削除された各行または各ドキュメントの変更イベントレコードを生成します。コネクターのデプロイに関する詳細は、以下を参照してください。- Deploying the MySQL connector
- Deploying the MongoDB connector
- Deploying the PostgreSQL connector
- Deploying the SQL Server connector
Db2 コネクターを使用するには、IBM InfoSphere Data Replication (IIDR) 製品のライセンスが必要です。ただし、IIDR をインストールする必要はありません。
-
KafkaConnect.spec.image property
およびSTRIMZI_DEFAULT_KAFKA_CONNECT_IMAGE
変数の詳細は、Using AMQ Streams on OpenShift を参照してください。