11.3. トピック変更の処理
設定の変更は、KafkaTopic リソースから Kafka トピックへの一方向にのみ行われます。KafkaTopic リソースの外部で管理される Kafka トピックへの変更はすべて元に戻されます。
11.3.1. 内部トピックを使用してトピックのメタデータを保存する Streams for Apache Kafka バージョンにダウングレードする リンクのコピーリンクがクリップボードにコピーされました!
トピックメタデータの保存に内部トピックを使用する 2.8 より前のバージョンの Streams for Apache Kafka に戻す場合も、Cluster Operator を前のバージョンにダウングレードしてから、Kafka ブローカーおよびクライアントアプリケーションを標準として前の Kafka バージョンにダウングレードします。
11.3.2. ZooKeeper を使用してトピックのメタデータを保存する Streams for Apache Kafka バージョンにダウングレードする リンクのコピーリンクがクリップボードにコピーされました!
トピックメタデータの保存に ZooKeeper を使用する 1.7 より前のバージョンの Streams for Apache Kafka に戻す場合も、Cluster Operator を前のバージョンにダウングレードしてから、Kafka ブローカーおよびクライアントアプリケーションを標準として前の Kafka バージョンにダウングレードします。
ただし、Kafka クラスターのブートストラップアドレスを指定して、kafka-topics コマンドを使用してトピックストア用に作成されたトピックを削除する必要もあります。以下に例を示します。
oc run kafka-admin -ti --image=registry.redhat.io/amq-streams/kafka-39-rhel9:2.9.3 --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
このコマンドは、Kafka クラスターへのアクセスに使用されるリスナーおよび認証のタイプに対応している必要があります。
Topic Operator は、Kafka のトピックの状態から ZooKeeper トピックメタデータを再構築します。
11.3.3. トピックの自動作成 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションは、Kafka クラスター内のトピックの自動作成をトリガーできます。デフォルトでは、Kafka ブローカー設定 auto.create.topics.enable は true に設定されており、アプリケーションが存在しないトピックから生成または消費しようとしたときに、ブローカーがトピックを自動的に作成できるようになります。アプリケーションは、Kafka AdminClient を使用してトピックを自動的に作成する場合もあります。アプリケーションが KafkaTopic リソースとともにデプロイされる場合、Topic Operator が KafkaTopic に反応する前に、クラスター内でトピックの自動作成が行われる可能性があります。
アプリケーションデプロイメント用に作成されたトピックは、最初はデフォルトのトピック設定で作成されます。Topic Operator がアプリケーションデプロイメントに含まれる KafkaTopic リソース仕様に基づいてトピックを再設定しようとすると、必要な設定変更が許可されていないため、操作が失敗する可能性があります。たとえば、変更がトピックパーティションの数を減らすことを意味する場合です。このため、Kafka クラスター設定で auto.create.topics.enable を無効にすることを推奨します。