18.2. Kafka バージョンの更新
クラスター管理に ZooKeeper を使用する場合に Kafka をアップグレードするには、Kafka
リソースの設定内の Kafka バージョン (Kafka.spec.kafka.version
) とそのブローカー間プロトコルバージョン (inter.broker.protocol.version
) を更新する必要があります。Kafka の各バージョンには、互換性のあるバージョンの inter-broker プロトコルがあります。ブローカー間プロトコルは、ブローカー間の通信に使用されます。上記の表が示すように、プロトコルのマイナーバージョンは、通常 Kafka のマイナーバージョンと一致するように番号が増加されます。inter-broker プロトコルのバージョンは、Kafka
リソースでクラスター全体に設定されます。これを変更するには、Kafka.spec.kafka.config
の inter.broker.protocol.version
プロパティーを編集します。
以下の表は、Kafka バージョンの違いを示しています。
Streams for Apache Kafka バージョン | Kafka バージョン | inter-broker プロトコルバージョン | ログメッセージ形式バージョン | ZooKeeper バージョン |
---|---|---|---|---|
2.7 | 3.7.0 | 3.7 | 3.7 | 3.8.3 |
2.6 | 3.6.0 | 3.6 | 3.6 | 3.8.3 |
- Kafka 3.7.0 は実稼働環境での使用がサポートされています。
- Kafka 3.6.0 は、Streams for Apache Kafka 2.7 にアップグレードする目的でのみサポートされます。
ログメッセージ形式バージョン
プロデューサーが Kafka ブローカーにメッセージを送信すると、特定の形式を使用してメッセージがエンコードされます。この形式は Kafka のリリース間で変更になる可能性があるため、メッセージにはエンコードに使用されたメッセージ形式のバージョンが指定されます。
特定のメッセージ形式のバージョンを設定するために使用されるプロパティーは以下のとおりです。
-
トピック用の
message.format.version
プロパティー -
Kafka ブローカーの
log.message.format.version
プロパティー
Kafka 3.0.0 以降、メッセージ形式のバージョンの値は inter.broker.protocol.version
と一致すると見なされ、設定する必要はありません。値は、使用される Kafka バージョンを反映します。
Kafka 3.0.0 以降にアップグレードする場合は、inter.broker.protocol.version
を更新する際にこの設定を削除できます。それ以外の場合は、アップグレード先の Kafka バージョンに基づいてメッセージ形式のバージョンを設定できます。
トピックの message.format.version
のデフォルト値は、Kafka ブローカーに設定される log.message.format.version
によって定義されます。トピックの message.format.version
は、トピック設定を編集すると手動で設定できます。
Kafka バージョン変更によるローリング更新
Cluster Operator は、Kafka バージョンが更新されると、Kafka ブローカーへのローリング更新を開始します。さらなるローリング更新は、inter.broker.protocol.version
および log.message.format.version
の設定に応じて異なります。
Kafka.spec.kafka.config に以下が含まれている場合 | Cluster Operator によって開始されるもの |
---|---|
|
単一のローリング更新。更新後、 |
| 2 つのローリング更新 |
| 2 つのローリング更新 |
Kafka 3.0.0 以降、inter.broker.protocol.version
が 3.0
以上に設定されていると、log.message.format.version
オプションは無視されるため、設定する必要はありません。ブローカーの log.message.format.version
プロパティーおよびトピックの message.format.version
プロパティーは、非推奨となり、Kafka の今後のリリースで削除されます。
Cluster Operator は、Kafka のアップグレードの一環として、ZooKeeper のローリング更新を開始します。
- ZooKeeper バージョンが変更されなくても、単一のローリング更新が発生します。
- 新しいバージョンの Kafka に新しいバージョンの ZooKeeper が必要な場合、追加のローリング更新が発生します。