24.2. Kafka のダウングレード


Kafka バージョンのダウングレードは、Cluster Operator によって実行されます。

24.2.1. ダウングレードでの Kafka バージョンの互換性

Kafka のダウングレードは、互換性のある現在およびターゲットの Kafka バージョン と、メッセージがログに記録された状態に依存します。

そのバージョンが、クラスターでこれまで使用された inter.broker.protocol.version 設定をサポートしない場合、または新しい log.message.format.version を使用するメッセージログにメッセージが追加された場合は、下位バージョンの Kafka に戻すことはできません。

Inter.broker.protocol.version は、__consumer_offsets に書き込まれたメッセージのスキーマなど、ブローカーによって保存される永続メタデータに使用されるスキーマを判断します。クラスターで以前使用された inter.broker.protocol.version が認識されない Kafka バージョンにダウングレードすると、ブローカーが認識できないデータが発生します。

ダウングレードする Kafka のバージョンの関係は次のとおりです。

  • ダウングレードする Kafka バージョンの log.message.format.version が現行バージョンと 同じ である場合、Cluster Operator は、ブローカーのローリング再起動を 1 回実行してダウングレードを行います。
  • 別の log.message.format.version の場合、ダウングレード後の Kafka バージョンが使用するバージョンに設定された log.message.format.version に 実行中のクラスターに存在する場合に限り、ダウングレードが可能です。通常は、アップグレードの手順が log.message.format.version の変更前に中止された場合にのみ該当します。その場合、ダウングレードには以下が必要です。

    • 2 つのバージョンで Interbroker プロトコルが異なる場合、ブローカーのローリング再起動が 2 回必要です。
    • 両バージョンで同じ場合は、ローリング再起動が 1 回必要です。

以前のバージョンでサポートされない log.message.format.version が新バージョンで使われていた場合 (log.message.format.version のデフォルト値が使われていた場合など)、ダウングレードは実行 できません。たとえば、log.message.format.version が変更されていないため、このリソースは Kafka バージョン 3.5.0 にダウングレードできます。

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  kafka:
    version: 3.6.0
    config:
      log.message.format.version: "3.5"
      # ...
Copy to Clipboard Toggle word wrap

log.message.format.version"3.6" に設定されているか、値が指定されていない場合、パラメーターが 3.6.0 ブローカーのデフォルト値 3.6 を取得した場合、ダウングレードは不可能です。

重要

Kafka 3.0.0 以降、inter.broker.protocol.version3.0 以上に設定されていると、log.message.format.version オプションは無視されるため、設定する必要はありません。

24.2.2. Kafka ブローカーおよびクライアントアプリケーションのダウングレード

AMQ Streams Kafka クラスターを Kafka の下位 (以前の) バージョンにダウングレードします (3.6.0 から 3.5.0 へのダウングレードなど)。

前提条件

  • Cluster Operator が稼働しています。
  • AMQ Streams Kafka クラスターをダウングレードする前に、Kafka リソースについて以下を確認してください。

    • 重要: Kafka バージョンの互換性
    • Kafka.spec.kafka.config に、ダウングレードする Kafka バージョンでサポートされていないオプションが含まれていない。
    • Kafka.spec.kafka.config に、ダウングレード先の Kafka バージョンでサポートされる log.message.format.versioninter.broker.protocol.version がある。

      Kafka 3.0.0 以降、inter.broker.protocol.version3.0 以上に設定されていると、log.message.format.version オプションは無視されるため、設定する必要はありません。

手順

  1. Kafka クラスター設定を更新します。

    oc edit kafka KAFKA-CONFIGURATION-FILE
    Copy to Clipboard Toggle word wrap
  2. Kafka.spec.kafka.version を変更して、以前のバージョンを指定します。

    たとえば、Kafka 3.6.0 から 3.5.0 にダウングレードする場合:

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    spec:
      # ...
      kafka:
        version: 3.5.0 
    1
    
        config:
          log.message.format.version: "3.5" 
    2
    
          inter.broker.protocol.version: "3.5" 
    3
    
          # ...
    Copy to Clipboard Toggle word wrap
    1
    Kafka のバージョンが以前のバージョンに変更されます。
    2
    メッセージ形式のバージョンは変更されません。
    3
    ブローカー間のプロトコルバージョンは変更されません。
    注記

    log.message.format.version および inter.broker.protocol.version の値は、浮動小数点数として解釈されないように文字列である必要があります。

  3. Kafka バージョンのイメージが Cluster Operator の STRIMZI_KAFKA_IMAGES に定義されているイメージとは異なる場合は、Kafka.spec.kafka.image を更新します。

    「Kafka バージョンおよびイメージマッピング」 を参照

  4. エディターを保存して終了し、ローリング更新の完了を待ちます。

    更新をログで確認するか、Pod 状態の遷移を監視して確認します。

    oc logs -f CLUSTER-OPERATOR-POD-NAME | grep -E "Kafka version downgrade from [0-9.]+ to [0-9.]+, phase ([0-9]+) of \1 completed"
    Copy to Clipboard Toggle word wrap
    oc get pod -w
    Copy to Clipboard Toggle word wrap

    Cluster Operator ログで INFO レベルのメッセージを確認します。

    Reconciliation #NUM(watch) Kafka(NAMESPACE/NAME): Kafka version downgrade from FROM-VERSION to TO-VERSION, phase 1 of 1 completed
    Copy to Clipboard Toggle word wrap
  5. すべてのクライアントアプリケーション (コンシューマー) をダウングレードして、以前のバージョンのクライアントバイナリーを使用します。

    これで、Kafka クラスターおよびクライアントは以前の Kafka バージョンを使用するようになります。

  6. トピックメタデータの保存に ZooKeeper を使用する 1.7 よりも前のバージョンの AMQ Streams に戻す場合は、Kafka クラスターから内部トピックストアのトピックを削除します。

    oc run kafka-admin -ti --image=registry.redhat.io/amq-streams/kafka-36-rhel8:2.6.0 --rm=true --restart=Never -- ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi-topic-operator-kstreams-topic-store-changelog --delete && ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi_store_topic --delete
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat