2.2. Kafka Connect のデプロイ
Kafka クラスターの設定後、Debezium のカスタムコンテナーイメージに Kafka Connect をデプロイします。このサービスは、Debezium MySQL コネクターを管理するためのフレームワークを提供します。
前提条件
- Podman または Docker がインストールされ、コンテナーを作成および管理するのに十分な権限がある。
手順
- Red Hat Integration のダウンロードサイト から Debezium MySQL Connector 1.4 アーカイブをダウンロードします。
Debezium MySQL コネクターアーカイブを展開して、コネクタープラグインのディレクトリー構造を作成します。以下に例を示します。
tree ./my-plugins/ ./my-plugins/ ├── debezium-connector-mysql │ ├── ...
tree ./my-plugins/ ./my-plugins/ ├── debezium-connector-mysql │ ├── ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow Debezium MySQL コネクターで Kafka Connect を実行するカスタムイメージを作成し、パブリッシュします。
registry.redhat.io/amq7/amq-streams-kafka-26-rhel7:1.6.0をベースイメージとして使用して、新規のDockerfileを作成します。以下の例のmy-pluginsは、プラグインディレクトリーの名前に置き換えます。FROM registry.redhat.io/amq7/amq-streams-kafka-26-rhel7:1.6.0 USER root:root COPY ./my-plugins/ /opt/kafka/plugins/ USER 1001
FROM registry.redhat.io/amq7/amq-streams-kafka-26-rhel7:1.6.0 USER root:root COPY ./my-plugins/ /opt/kafka/plugins/ USER 1001Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka Connect は、コネクターの実行を開始する前に、
/opt/kafka/pluginsディレクトリーにあるサードパーティープラグインをロードします。コンテナーイメージをビルドします。たとえば、前の手順で作成した
Dockerfileをdebezium-container-for-mysqlとして保存し、Dockerfileが現在のディレクトリーにある場合は、以下のコマンドのいずれかを入力します。podman build -t debezium-container-for-mysql:latest .
podman build -t debezium-container-for-mysql:latest .Copy to Clipboard Copied! Toggle word wrap Toggle overflow docker build -t debezium-container-for-mysql:latest .
docker build -t debezium-container-for-mysql:latest .Copy to Clipboard Copied! Toggle word wrap Toggle overflow カスタムイメージをコンテナーレジストリーにプッシュします。以下のいずれかのコマンドを実行します。
podman push <my_registry.io>/debezium-container-for-mysql:latest
podman push <my_registry.io>/debezium-container-for-mysql:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow docker push <my_registry.io>/debezium-container-for-mysql:latest
docker push <my_registry.io>/debezium-container-for-mysql:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaConnectカスタムリソースのspec.imageプロパティーを編集して、新しいコンテナーイメージを示します。このプロパティーが設定されている場合、その値は Cluster Operator のSTRIMZI_DEFAULT_KAFKA_CONNECT_IMAGE変数を上書きします。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
結果
Kafka Connect が稼働します。コンテナーには Debezium MySQL コネクターがありますが、このコネクターはこの時点ではデータベースの変更をキャプチャーするように設定されていません。