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 つのサブステップを省略します。
- 「Installing AMQ Streams and deploying components」の手順に従って、AMQ Streams operator をインストールします。
- 希望の設定を選択し、Kafka Cluster をデプロイ します。
- Kafka Connect をデプロイします。
これで、Kafka Connect を使用して OpenShift で実行されている Kafka クラスターを利用できます。
Pod が稼働していることを確認します。Pod 名は AMQ Streams デプロイメントに対応します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod の実行の他に、Kafka Connect に関連付けられた DeploymentConfig が必要です。
- Red Hat Integration のダウンロードサイト に移動します。
- データベースの Debezium コネクターアーカイブをダウンロードします。
アーカイブを展開して、コネクタープラグインのディレクトリー構造を作成します。複数のアーカイブをダウンロードおよび展開した場合、構造は以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow registry.redhat.io/amq7/amq-streams-kafka-28-rhel8:1.8.0をベースイメージとして使用して、新しいDockerfileを作成します。FROM registry.redhat.io/amq7/amq-streams-kafka-28-rhel8:1.8.0 USER root:root COPY ./my-plugins/ /opt/kafka/plugins/ USER 1001
FROM registry.redhat.io/amq7/amq-streams-kafka-28-rhel8:1.8.0 USER root:root COPY ./my-plugins/ /opt/kafka/plugins/ USER 1001Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーイメージをビルドします。前の手順で作成した
Dockerfileがカレントディレクトリーにある場合は、以下のコマンドのいずれかを入力します。podman build -t my-new-container-image:latest .
podman build -t my-new-container-image:latest .Copy to Clipboard Copied! Toggle word wrap Toggle overflow docker build -t my-new-container-image:latest .
docker build -t my-new-container-image:latest .Copy to Clipboard Copied! Toggle word wrap Toggle overflow カスタムイメージをコンテナーレジストリーにプッシュします。以下のいずれかのコマンドを実行します。
podman push my-new-container-image:latest
podman push my-new-container-image:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow docker push my-new-container-image:latest
docker push my-new-container-image:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいコンテナーイメージを示します。Debezium コネクターを実行するために作成したイメージの名前を指定するため、以下のいずれかのタスクを実行します。
KafkaConnectカスタムリソースのspec.imageフィールドを編集します。このプロパティーを設定すると、Cluster Operator の
STRIMZI_DEFAULT_KAFKA_CONNECT_IMAGE変数はこの値によって上書きされます。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
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』を参照してください。