18.3. Kafka クラスターのアップグレード
KRaft ベースの Kafka クラスターを、サポートされている新しい Kafka バージョンおよび KRaft メタデータバージョンにアップグレードします。インストールファイルを更新し、すべての Kafka ノードを設定して再起動します。これらの手順の実行後に、新しいメタデータバージョンに従って Kafka ブローカー間でデータが送信されます。
KRaft ベースの Strimzi Kafka クラスターを下位バージョンにダウングレードする場合 (3.7.0 から 3.6.0 への移行など)、Kafka クラスターで使用されるメタデータバージョンが、ダウングレードする Kafka バージョンでサポートされているバージョンであることを確認してください。ダウングレード元の Kafka バージョンのメタデータバージョンは、ダウングレード先のバージョンより高くすることはできません。
前提条件
-
Red Hat Enterprise Linux に
kafka
ユーザーとしてログインしている。 - Streams for Apache Kafka が 各ホストにインストールされており、設定ファイルが使用可能である。
- インストールファイル をダウンロードしている。
手順
Streams for Apache Kafka クラスター内の各 Kafka ノードについて、一度に 1 つずつ、コントローラーノードの後にブローカーという順で、以下の手順を実行します。
Streams for Apache Kafka ソフトウェアダウンロードページ から Streams for Apache Kafka のアーカイブをダウンロードします。
注記プロンプトが表示されたら、Red Hat アカウントにログインします。
コマンドラインで一時ディレクトリーを作成し、
amq-streams-<version>-bin.zip
ファイルの内容を展開します。mkdir /tmp/kafka unzip amq-streams-<version>-bin.zip -d /tmp/kafka
実行中の場合は、ホスト上で実行している Kafka ブローカーを停止します。
/opt/kafka/bin/kafka-server-stop.sh jcmd | grep kafka
マルチノードクラスターで Kafka を実行している場合は、「Kafka ブローカーの正常なローリング再起動の実行」 を参照してください。
既存のインストールから
libs
およびbin
ディレクトリーを削除します。rm -rf /opt/kafka/libs /opt/kafka/bin
一時ディレクトリーから
libs
およびbin
ディレクトリーをコピーします。cp -r /tmp/kafka/kafka_<version>/libs /opt/kafka/ cp -r /tmp/kafka/kafka_<version>/bin /opt/kafka/
-
必要に応じて、
config
ディレクトリー内の設定ファイルを更新して、新しい Kafka バージョンの変更を反映します。 一時ディレクトリーを削除します。
rm -r /tmp/kafka
更新した Kafka ノードを再起動します。
ロールを組み合わせたノードの再起動
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/server.properties
コントローラーノードの再起動
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/controller.properties
broker ロールを持つノードの再起動
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/broker.properties
Kafka ブローカーは、最新 Kafka バージョンのバイナリーの使用を開始します。
マルチノードクラスターでブローカーを再起動する方法は、「Kafka ブローカーの正常なローリング再起動の実行」 を参照してください。
Kafka が稼働していることを確認します。
jcmd | grep kafka
Kafka メタデータのバージョンを更新します。
./bin/kafka-features.sh --bootstrap-server <broker_host>:<port> upgrade --metadata 3.7
アップグレード先の Kafka バージョンに応じた正しいバージョンを使用してください。
kafka-topics.sh
ツールを使用して、ブローカーに含まれるすべてのレプリカが同期していることを確認し、再起動した Kafka ブローカーが、フォローしているパーティションレプリカに追いついたことを確認してください。手順は、トピックの一覧表示および説明 を参照してください。
クライアントアプリケーションのアップグレード
アップグレードプロセスの一環として、すべての Kafka クライアントアプリケーションが新しいバージョンのクライアントバイナリーを使用するように更新されていることを確認し、Kafka アップグレードとの互換性を確認します。必要に応じて、クライアントアプリケーションの管理を担当するチームと連携してください。
クライアントが最新のメッセージ形式を使用していることを確認するには、kafka.server:type=BrokerTopicMetrics,name={Produce|Fetch}MessageConversionsPerSec
メトリクスを使用します。最新のメッセージ形式が使用されている場合、このメトリクスに 0
が表示されます。