31.2. Streams for Apache Kafka のアップグレードパス
Streams for Apache Kafka には 2 つのアップグレードパスがあります。
- 増分アップグレード
- 増分アップグレードは、サポートされているアップグレードパスに従って、連続するマイナーバージョン (2.8 から 2.9 など) 間を移動します。
- マルチバージョンアップグレード
- マルチバージョンアップグレードでは、1 つ以上のマイナーバージョンがスキップされ、連続する長期サポート (LTS) バージョン間でのみサポートされます。OperatorHub から対象の LTS バージョンのバージョン固有のチャネルを選択し、Kafka バージョンを手動で更新することで、マルチバージョンアップグレードを実行できます。Kafka バージョンの変更により一時的なエラーが発生する可能性がありますが、これは予期されたものであり、アップグレード中に Kafka バージョンを更新することで解決できます。
実稼働環境でアップグレードする前に、制御された環境で特定のシナリオをテストして、発生する可能性のある問題を特定します。
LTS チャネル (amq-streams-lts) では、マルチバージョンアップグレードはサポートされていません。これ以上の LTS バージョンは LTS チャネルに追加されません。これは非推奨であり、後のリリースで削除されます。LTS バージョン間のアップグレードには、バージョン固有のチャネルを使用します。
31.2.1. アップグレード時の Kafka バージョンのサポート リンクのコピーリンクがクリップボードにコピーされました!
Streams for Apache Kafka をアップグレードする場合、使用中の Kafka バージョンとの互換性を確保することが重要です。
サポートされている Kafka バージョンが新旧バージョンで異なる場合でも、マルチバージョンアップグレードが可能です。ただし、現在の Kafka バージョンをサポートしていない新しい Streams for Apache Kafka バージョンにアップグレードしようとすると、Kafka バージョンがサポートされていないことを示すエラーが生成 されます。この場合、Kafka カスタムリソースの spec.kafka.version を、新しい Streams for Apache Kafka バージョンでサポートされているバージョンに変更して、Streams for Apache Kafka のアップグレード中に Kafka バージョンをアップグレードする必要があります。
31.2.2. 1.7 より前のバージョンの Streams for Apache Kafka からアップグレードする リンクのコピーリンクがクリップボードにコピーされました!
バージョン 1.7 より前のバージョンから Streams for Apache Kafka の最新バージョンにアップグレードする場合は、次の手順を実行します。
- 標準の手順 に従って、Streams for Apache Kafka をバージョン 1.7 にアップグレードします。
-
Streams for Apache Kafka に付属する API 変換ツール を使用して、Streams for Apache Kafka カスタムリソースを
v1beta2に変換します。 次のいずれかを行います。
-
Streams for Apache Kafka をバージョン 1.8 (
ControlPlaneListenerフィーチャーゲートがデフォルトで無効) にアップグレードします。 -
ControlPlaneListenerフィーチャーゲートを無効にして、Streams for Apache Kafka をバージョン 2.0 - 2.2 (ControlPlaneListenerフィーチャーゲートがデフォルトで有効) にアップグレードします。
-
Streams for Apache Kafka をバージョン 1.8 (
-
ControlPlaneListenerフィーチャーゲートを有効化します。 - 標準の手順 に従って、Streams for Apache Kafka 2.9 にアップグレードします。
Streams for Apache Kafka のカスタムリソースでは、リリース 1.7 から v1beta2 API バージョンの使用を開始しました。Streams for Apache Kafka 1.8 にアップグレードする 前 に、CRD とカスタムリソースを変換する必要があります。API 変換ツールの使用方法は、Streams for Apache Kafka 1.7 アップグレードドキュメント を参照してください。
最初にバージョン 1.7 にアップグレードする代わりに、カスタムリソースをバージョン 1.7 からインストールしてから、リソースを変換することができます。
ControlPlaneListener 機能が、Streams for Apache Kafka で永続的に有効になりました。この機能が無効な Streams for Apache Kafka のバージョンにアップグレードしてから、Cluster Operator 設定の STRIMZI_FEATURE_GATES 環境変数を使用して有効にする必要があります。
ControlPlaneListener フィーチャーゲートの無効化
env:
- name: STRIMZI_FEATURE_GATES
value: -ControlPlaneListener
ControlPlaneListener フィーチャーゲートの有効化
env:
- name: STRIMZI_FEATURE_GATES
value: +ControlPlaneListener
31.2.3. Kafka バージョンおよびイメージマッピング リンクのコピーリンクがクリップボードにコピーされました!
Kafka のアップグレード時に、STRIMZI_KAFKA_IMAGES 環境変数と Kafka.spec.kafka.version プロパティーの設定を考慮してください。
-
各
KafkaリソースはKafka.spec.kafka.versionを使用して設定できます。指定しない場合は、デフォルトでサポートされている最新の Kafka バージョン (3.9.0) が設定されます。 Cluster Operator の
STRIMZI_KAFKA_IMAGES環境変数は、Kafka バージョンと、特定のKafkaリソースで特定の Kafka バージョンが要求されたときに使用されるイメージとの間のマッピング (<kafka_version>=<image>) を提供します。例:3.9.0=registry.redhat.io/amq-streams/kafka-39-rhel9:2.9.3-
Kafka.spec.kafka.imageを設定しないと、そのバージョンのデフォルトのイメージが使用されます。 -
Kafka.spec.kafka.imageを設定すると、デフォルトのイメージがオーバーライドされます。
-
Cluster Operator は、Kafka ブローカーの想定されるバージョンが実際にイメージに含まれているかどうかを検証できません。所定のイメージが所定の Kafka バージョンに対応することを必ず確認してください。