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 を使用して作成された。
手順
-
KafkaconnectS2I
リソースに使用される名前と同じ名前を使用して、新しいKafkaConnect
カスタムリソースを作成します。 -
KafkaConnectS2I
リソースプロパティーをKafkaConnect
リソースにコピーします。 指定した場合は、同じ
spec.config
プロパティーを使用するようにしてください。-
group.id
-
offset.storage.topic
-
config.storage.topic
status.storage.topic
これらのプロパティーが指定されていない場合は、デフォルトが使用されます。この場合は、
KafkaConnect
リソース設定にも指定しません。
次に、
KafkaConnect
リソース固有の設定を新しいリソースに追加します。-
build
設定を追加して、Kafka Connect デプロイメントに追加するすべてのコネクターおよびその他のライブラリーを設定します。注記この代わりに、コネクターで新しいイメージを手動でビルドし、
.spec.image
プロパティーを使用して指定することもできます。以前の
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-S2I を
KafkaConnectS2I
リソースの名前に置き換えます。S2I を使用する Kafka Connect のデプロイメントと Pod が削除されるまで待ちます。
警告他のリソースを削除する必要はありません。
新しい
KafkaConnect
リソースをデプロイします。oc apply -f MY-KAFKA-CONNECT-CONFIG-FILE
MY-KAFKA-CONNECT-CONFIG-FILE を、新しい
KafkaConnect
リソース設定が含まれるファイルの名前に置き換えます。新しいイメージのビルド、デプロイメントの作成、および Pod の起動が行われるまで待ちます。
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 を使用してコネクターを管理している場合でも、手作業で再作成する必要はありません。