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 がインストールされている。

手順

  1. Kafka クラスターをデプロイします。Kafka クラスターがすでにデプロイされている場合は、以下の 3 つのサブステップを省略します。

    1. AMQ Streams のインストールおよびコンポーネントのデプロイ の手順にしたがって、AMQ Streams operator をインストールします。
    2. 希望の設定を選択し、Kafka Cluster をデプロイ します。
    3. Kafka Connect をデプロイします。

    これで、Kafka Connect を使用して OpenShift で実行されている Kafka クラスターを利用できます。

  2. 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 が必要です。

  3. Red Hat Integration のダウンロードサイト に移動します。
  4. データベースの Debezium コネクターアーカイブをダウンロードします。
  5. アーカイブを展開して、コネクタープラグインのディレクトリー構造を作成します。複数のアーカイブをダウンロードおよび展開した場合、構造は以下のようになります。

    $ tree ./my-plugins/
    ./my-plugins/
    ├── debezium-connector-db2
    |   ├── ...
    ├── debezium-connector-mongodb
    |   ├── ...
    ├── debezium-connector-mysql
    │   ├── ...
    ├── debezium-connector-postgres
    │   ├── ...
    └── debezium-connector-sqlserver
        ├── ...
  6. 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
  7. コンテナーイメージをビルドします。前の手順で作成した Dockerfile がカレントディレクトリーにある場合は、以下のコマンドのいずれかを入力します。

    podman build -t my-new-container-image:latest .
    docker build -t my-new-container-image:latest .
  8. カスタムイメージをコンテナーレジストリーにプッシュします。以下のいずれかのコマンドを実行します。

    podman push my-new-container-image:latest
    docker push my-new-container-image:latest
  9. 新しいコンテナーイメージを示します。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 カスタムリソースを作成し、適用します。これにより、設定されたデータベースに対してコネクターの実行が開始されます。コネクターが起動すると、設定されたデータベースに接続し、挿入、更新、および削除された各行または各ドキュメントの変更イベントレコードを生成します。コネクターのデプロイに関する詳細は、以下を参照してください。

  • KafkaConnect.spec.image property および STRIMZI_DEFAULT_KAFKA_CONNECT_IMAGE 変数の詳細は、Using AMQ Streams on OpenShift を参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.