Kafka Connect の構成

コネクターの追加

以下の Connect イメージのいずれかに新しいコネクターを追加します。

  • Confluent Platform 6.2.x 以上の場合、cp-server-connect イメージを使用します。

    このドキュメントの以降の部分では、このイメージを使用します。

  • Confluent Platform 6.1.x 以前の場合、cp-server-connect-operator イメージを使用します。

イメージには、Connect およびそのすべての依存関係が含まれます。コネクターの JAR は一切含まれていません。

Connect イメージに新しいコネクターを追加するには、新しいコネクターがインストールされた新しい Docker イメージをビルドする必要があります。

  1. 1 つまたは複数のコネクターを cp-server-connect イメージに追加するには、<dockerfile-dir>Dockerfile を作成します。

    以下のいずれかを行います。

    • Confluent Hub からコネクターをプルします。
    • Docker ビルドを実行しているマシンにダウンロードしたコネクター JAR を使用します。

    Confluent Hub からコネクターをプルする場合

    以下のように Dockerfile を作成します。

    FROM confluentinc/cp-server-connect:<Confluent Platform release>
    USER root
    RUN confluent-hub install --no-prompt <connector1>:<connector1-version> \
      && confluent-hub install --no-prompt <connector2>:<connector2-version> \
      && ...
    USER 1001
    

    この Dockerfile の例では、Docker イメージの作成に Confluent Hub の data-gen コネクターを使用しています。

    FROM confluentinc/cp-server-connect:6.2.0
    USER root
    RUN  confluent-hub install --no-prompt confluentinc/kafka-connect-datagen:0.3.3
    USER 1001
    

    Docker ビルドを実行しているマシンにダウンロードしたコネクター JAR を使用する場合

    以下のように Dockerfile を作成します。

    FROM confluentinc/cp-server-connect:<Confluent Platform release>
    ADD <local-connector1-path> /usr/share/java/<connector1> \
      && <local-connector2-path> /usr/share/java/<connector2> \
      && ...
    USER 1001
    

    この例の Dockerfile では、ローカルマシンの <connector-dir> ディレクトリにある data-gen コネクターを使用します。

    FROM confluentinc/cp-server-connect:6.2.0
    ADD​ my-connector-dir/confluentinc-kafka-connect-datagen /usr/share/java/confluentinc-kafka-connect-datagen
    USER 1001
    
  2. 以下のコマンドを実行して、イメージをビルドしてプッシュします。

    docker build <dockerfile-dir> -t <someregistry>/<somerepository>:<sometag>
    
    docker push <someregistry>/<somerepository>:<sometag>
    
  3. Docker イメージの詳細を上記のプロセスの出力から入手し、Connect のカスタムリソース(CR)でリポジトリとタグを指定します。

    connect:
      spec:
        image:
          application: <someregistry>/<somerepository>:<sometag>