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
oc delete -f MY-KAFKA-CONNECT-S2I-CONFIG-FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow MY-KAFKA-CONNECT-S2I-CONFIG-FILE を、
KafkaConnectS2Iリソース設定が含まれるファイルの名前に置き換えます。代わりに、リソースの名前を指定できます。
oc delete kafkaconnects2i MY-KAFKA-CONNECT-S2I
oc delete kafkaconnects2i MY-KAFKA-CONNECT-S2ICopy to Clipboard Copied! Toggle word wrap Toggle overflow MY-KAFKA-CONNECT-S2I を
KafkaConnectS2Iリソースの名前に置き換えます。S2I を使用する Kafka Connect のデプロイメントと Pod が削除されるまで待ちます。
警告他のリソースを削除する必要はありません。
新しい
KafkaConnectリソースをデプロイします。oc apply -f MY-KAFKA-CONNECT-CONFIG-FILE
oc apply -f MY-KAFKA-CONNECT-CONFIG-FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow MY-KAFKA-CONNECT-CONFIG-FILE を、新しい
KafkaConnectリソース設定が含まれるファイルの名前に置き換えます。新しいイメージのビルド、デプロイメントの作成、および Pod の起動が行われるまで待ちます。
Kafka Connect コネクターの管理に
KafkaConnectorリソースを使用している場合は、予想されるコネクターがすべて存在し、稼働していることを確認します。oc get kctr --selector strimzi.io/cluster=MY-KAFKA-CONNECT-CLUSTER -o name
oc get kctr --selector strimzi.io/cluster=MY-KAFKA-CONNECT-CLUSTER -o nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow MY-KAFKA-CONNECT-CLUSTER は、Kafka Connect クラスターの名前に置き換えます。
コネクターは Kafka Connect ストレージより自動的に復元されます。Kafka Connect REST API を使用してコネクターを管理している場合でも、手作業で再作成する必要はありません。