25.6. KRaft ベースの Kafka クラスターとクライアントアプリケーションのアップグレード


KRaft ベースの Streams for Apache Kafka クラスターを、サポートされている新しい Kafka バージョンと KRaft メタデータバージョンにアップグレードします。

クライアントをアップグレードするストラテジー を選択する必要もあります。Kafka クライアントは、この手順の 6 でアップグレードされます。

注記

KRaft ベースのアップグレードのサポートに関する最新情報は、Apache Kafka のドキュメントを参照してください。

前提条件

  • Cluster Operator が稼働中である。
  • Streams for Apache Kafka クラスターをアップグレードする前に、Kafka リソースのプロパティーに、新しい Kafka バージョンでサポートされていない設定オプションが 含まれていない ことを確認した。

手順

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

    oc edit kafka <kafka_configuration_file>
  2. 設定されている場合は、現在の spec.kafka.metadataVersion が、アップグレード先の Kafka のバージョンでサポートされているバージョンに設定されていることを確認してください。

    たとえば、Kafka バージョン 3.6.0 から 3.7.0 にアップグレードする場合、現在のバージョンは 3.6-IV2 です。

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      kafka:
        replicas: 3
        metadataVersion: 3.6-IV2
        version: 3.6.0
        # ...

    metadataVersion が設定されていない場合、次のステップで Kafka バージョンを更新した後、Streams for Apache Kafka はそれを現在のデフォルトに自動的に更新します。

    注記

    metadataVersion の値は、浮動小数点数として解釈されないように文字列にする必要があります。

  3. Kafka.spec.kafka.version を変更して、新しい Kafka バージョンを指定します。現在の Kafka バージョンでは、metadataVersion をデフォルトのままにしておきます。

    注記

    kafka.version を変更すると、クラスターのすべてのブローカーがアップグレードされ、新しいブローカーバイナリーの使用が開始されます。このプロセスでは、一部のブローカーは古いバイナリーを使用し、他のブローカーはすでに新しいバイナリーにアップグレードされています。metadataVersion を現在の設定のままにしておくと、Kafka ブローカーとコントローラーがアップグレード中も相互に通信し続けることができます。

    たとえば、Kafka 3.6.0 から 3.7.0 にアップグレードする場合:

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      kafka:
        replicas: 3
        metadataVersion: 3.6-IV2 1
        version: 3.7.0 2
        # ...
    1
    メタデータのバージョンは変更されない
    2
    Kafka のバージョンが新しいバージョンに変更されます。
  4. Kafka クラスターのイメージが Kafka.spec.kafka.imageKafka カスタムリソースで定義されている場合、image を更新して、新しい Kafka バージョンでコンテナーイメージを示すようにします。

    Kafka バージョンおよびイメージマッピング を参照してください。

  5. 保存してエディターを終了し、ローリング更新による Kafka ノードのアップグレードが完了するまで待ちます。

    Pod の状態の遷移を監視して、ローリング更新の進捗を確認します。

    oc get pods my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'

    ローリング更新により、各 Pod が新バージョンの Kafka のブローカーバイナリーを使用するようになります。

  6. クライアントのアップグレードに選択したストラテジー に応じて、新バージョンのクライアントバイナリーを使用するようにすべてのクライアントアプリケーションをアップグレードします。

    必要に応じて、Kafka Connect および MirrorMaker の version プロパティーを新バージョンの Kafka として設定します。

    1. Kafka Connect では、KafkaConnect.spec.version を更新します。
    2. MirrorMaker では、KafkaMirrorMaker.spec.version を更新します。
    3. MirrorMaker 2 の場合は、KafkaMirrorMaker2.spec.version を更新します。

      注記

      手動でビルドしたカスタムイメージを使用している場合は、最新の Streams for Apache Kafka ベースイメージを使用してそのイメージを最新の状態にするために、イメージを再ビルドする必要があります。たとえば、Kafka Connect のベースイメージからコンテナーイメージを作成した 場合は、最新のベースイメージとビルド設定を参照するように Dockerfile を更新します。

  7. アップグレードされたクライアントアプリケーションが新しい Kafka ブローカーで正しく動作することを確認します。
  8. 設定されている場合は、新しい metadataVersion バージョンを使用するように Kafka リソースを更新します。それ以外の場合は、ステップ 9 に進みます。

    たとえば、Kafka 3.7.0 にアップグレードする場合:

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      kafka:
        replicas: 3
        metadataVersion: 3.7-IV2
        version: 3.7.0
        # ...
    警告

    ダウングレードできない可能性があるため、metadataVersion を変更する場合は注意してください。新しい Kafka バージョンの metadataVersion が、ダウングレード先の Kafka バージョンよりも高い場合は、Kafka をダウングレードすることができません。ただし、古いバージョンを維持する場合は、サポートと互換性に潜在的な影響があることを理解してください。

  9. Cluster Operator によってクラスターが更新されるまで待ちます。

    Kafka リソースのステータスからアップグレードが正常に完了したことを確認 できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.