2.2.6. S2I を使用する Kafka Connect から Kafka Connect への移行

S2I を使用する Kafka Connect と KafkaConnectS2I リソースのサポートは非推奨になりました。これは、データ接続に必要なコネクタープラグインでコンテナーイメージを自動的にビルドするために使用される KafkaConnect リソースに build 設定プロパティーが導入されたためです。

この手順では、S2I インスタンスのある Kafka Connect を標準の Kafka Connect インスタンスに移行する方法を説明します。これには、 KafkaConnectS2I リソースに代わる、新しい KafkaConnect カスタムリソースを設定します。設定後、このリソースは削除されます。

警告

移行プロセスでは、KafkaConnectS2I インスタンスが削除された時点から、新しい KafkaConnect インスタンスが正常にデプロイされるまで、ダウンタイムが発生します。この間、コネクターは実行されず、データは処理されません。ただし、変更後に停止した時点からコネクターが続行されるはずです。

前提条件

  • S2I を使用する Kafka Connect がKafkaConnectS2I 設定を使用してデプロイされている。
  • S2I を使用する Kafka Connect が、S2I ビルドを使用して追加されたコネクターでイメージを使用している。
  • シンクおよびソースコネクターインスタンスは KafkaConnector リソースまたは Kafka Connect REST API を使用して作成された。

手順

  1. KafkaconnectS2I リソースに使用される名前と同じ名前を使用して、新しい KafkaConnect カスタムリソースを作成します。
  2. KafkaConnectS2I リソースプロパティーを KafkaConnect リソースにコピーします。
  3. 指定した場合は、同じ spec.config プロパティーを使用するようにしてください。

    • group.id
    • offset.storage.topic
    • config.storage.topic
    • status.storage.topic

      これらのプロパティーが指定されていない場合は、デフォルトが使用されます。この場合は、KafkaConnect リソース設定にも指定しません。

    次に、KafkaConnect リソース固有の設定を新しいリソースに追加します。

  4. build 設定を追加して、Kafka Connect デプロイメントに追加するすべてのコネクターおよびその他のライブラリーを設定します。

    注記

    この代わりに、コネクターで新しいイメージを手動でビルドし、.spec.image プロパティーを使用して指定することもできます。

  5. 以前の KafkaConnectS2I リソースを削除します。

    oc delete -f MY-KAFKA-CONNECT-S2I-CONFIG-FILE

    MY-KAFKA-CONNECT-S2I-CONFIG-FILE を、KafkaConnectS2I リソース設定が含まれるファイルの名前に置き換えます。

    代わりに、リソースの名前を指定できます。

    oc delete kafkaconnects2i MY-KAFKA-CONNECT-S2I

    MY-KAFKA-CONNECT-S2IKafkaConnectS2I リソースの名前に置き換えます。

    S2I を使用する Kafka Connect のデプロイメントと Pod が削除されるまで待ちます。

    警告

    他のリソースを削除する必要はありません。

  6. 新しい KafkaConnect リソースをデプロイします。

    oc apply -f MY-KAFKA-CONNECT-CONFIG-FILE

    MY-KAFKA-CONNECT-CONFIG-FILE を、新しい KafkaConnect リソース設定が含まれるファイルの名前に置き換えます。

    新しいイメージのビルド、デプロイメントの作成、および Pod の起動が行われるまで待ちます。

  7. Kafka Connect コネクターの管理に KafkaConnector リソースを使用している場合は、予想されるコネクターがすべて存在し、稼働していることを確認します。

    oc get kctr --selector strimzi.io/cluster=MY-KAFKA-CONNECT-CLUSTER -o name

    MY-KAFKA-CONNECT-CLUSTER は、Kafka Connect クラスターの名前に置き換えます。

    コネクターは Kafka Connect ストレージより自動的に復元されます。Kafka Connect REST API を使用してコネクターを管理している場合でも、手作業で再作成する必要はありません。