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. Installing AMQ Streams and deploying components」の手順に従って、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-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
  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/v1beta2
      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.