第10章 Topic Operator を使用した Kafka トピックの管理
KafkaTopic
リソースは、パーティションやレプリケーション係数の設定などのトピックを設定します。KafkaTopic
を使用してトピックを作成、変更、または削除すると、Topic Operator はこれらの変更が Kafka クラスターに確実に反映されるようにします。
KafkaTopic
リソースの詳細は、KafkaTopic
スキーマリファレンス を参照してください。
10.1. トピック管理モード
KafkaTopic
リソースは、Kafka クラスター内の単一トピックを管理します。Topic Operator は、KafkaTopic
リソースと Kafka トピックを管理するための 2 つのモードを提供します。
- 一方向モード (デフォルト)
- 一方向モードでは、クラスター管理に ZooKeeper は必要ありません。KRaft モードでの Streams for Apache Kafka の使用と互換性があります。
- 双方向モード
- 双方向モードでは、クラスター管理に ZooKeeper が必要です。KRaft モードでの Streams for Apache Kafka の使用と互換性がありません。
Topic Operator を単方向モードで実行できるようにする機能ゲートが一般提供に進むにつれて、双方向モードは段階的に廃止されます。この移行は、特に KRaft モードでの Kafka のサポートにおいて、ユーザーエクスペリエンスを向上させることを目的としています。
10.1.1. 一方向のトピック管理
双方向モードでは、Topic Operator は次のように動作します。
-
KafkaTopic
が作成、削除、または変更されると、Topic Operator は Kafka トピックに対して対応するアクションを実行します。
対応する KafkaTopic
リソースが存在せずに、トピックが Kafka クラスター内で直接作成、削除、または変更された場合、Topic Operator はそのトピックを管理しません。Topic Operator は KafkaTopic
リソースに関連付けられた Kafka トピックのみを管理し、Kafka クラスター内で独立して管理されるトピックに干渉しません。Kafka トピックに KafkaTopic
が存在する場合は、リソースの外部で行われた設定変更はすべて元に戻されます。
Topic Operator は、複数の KafkaTopic
リソースが同じ .spec.topicName
を使用して Kafka トピックを管理しようとしているケースを検出できます。最も古いリソースのみが調整され、他のリソースはリソースの競合エラーで失敗します。
10.1.2. 双方向のトピック管理
双方向モードでは、Topic Operator は次のように動作します。
-
KafkaTopic
が作成、削除、または変更されると、Topic Operator は Kafka トピックに対して対応するアクションを実行します。 -
同様に、Kafka クラスター内でトピックが作成、削除、または変更されると、Topic Operator は
KafkaTopic
リソースに対して対応する操作を実行します。
KafkaTopic
リソースまたは Kafka で直接トピックを管理する方法を 1 つ保持してみてください。特定のトピックで、両方の方法を頻繁に切り替えないでください。