9.6. (プレビュー) Kafka トピックに影響を与えずに KafkaTopic リソースを管理する
この手順では、現在 KafkaTopic リソースを通じて管理されている Kafka トピックを非管理トピックに変換する方法について説明します。この機能はさまざまなシナリオで役立ちます。たとえば、KafkaTopic リソースの metadata.name を更新したい場合があります。これを行うには、元の KafkaTopic リソースを削除し、新しいリソースを再作成する必要があります。
KafkaTopic リソースに strimzi.io/managed=false のアノテーションを付けることにより、Topic Operator がその特定のトピックを管理すべきでないことを示します。これにより、リソースの設定やその他の管理タスクを変更しながら、Kafka トピックを保持できるようになります。
一方向トピック管理を使用している場合は、このタスクを実行できます。
一方向トピック管理はプレビューとして利用できます。一方向トピック管理はデフォルトでは有効になっていないため、それを使用できるようにするには 、UnidirectionTopicOperator フィーチャーゲートを有効にする 必要があります。
手順
OpenShift で
KafkaTopicリソースにアノテーションを付け、strimzi.io/managedをfalseに設定します。oc annotate kafkatopic my-topic-1 strimzi.io/managed=false
oc annotate kafkatopic my-topic-1 strimzi.io/managed=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaTopicリソース内のトピックのmetadata.nameを指定します。この例ではmy-topic-1です。KafkaTopicリソースのステータスをチェックして、リクエストが成功したことを確認します。oc get kafkatopics my-topic-1 -o yaml
oc get kafkatopics my-topic-1 -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Readyステータスのトピックの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- リソースの調整が成功すると、トピックは管理されなくなります。
metadata.generation(デプロイの現在のバージョン) の値は、status.observedGeneration(リソースの最新の調整) と一致する必要があります。これで、管理していた Kafka トピックに影響を与えることなく、
KafkaTopicリソースを変更できるようになりました。たとえば、
metadata.nameを変更するには、次のように実行します。元の
KafkTopicリソースを削除します。oc delete kafkatopic <kafka_topic_name>
oc delete kafkatopic <kafka_topic_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
別の
metadata.nameを使用してKafkTopicリソースを再作成しますが、元のリソースで管理されていたのと同じトピックを参照するにはspec.topicNameを使用します。
-
元の
KafkaTopicリソースを削除していないが、Kafka トピックの管理を再度再開したい場合は、strimzi.io/managedアノテーションをtrueに設定するか、アノテーションを削除します。