10.6. Kafka トピックに影響を与えずに KafkaTopic リソースを管理する
この手順では、現在 KafkaTopic
リソースを通じて管理されている Kafka トピックを非管理トピックに変換する方法について説明します。この機能はさまざまなシナリオで役立ちます。たとえば、KafkaTopic
リソースの metadata.name
を更新したい場合があります。これを行うには、元の KafkaTopic
リソースを削除し、新しいリソースを再作成する必要があります。
KafkaTopic
リソースに strimzi.io/managed=false
のアノテーションを付けることにより、Topic Operator がその特定のトピックを管理すべきでないことを示します。これにより、リソースの設定やその他の管理タスクを変更しながら、Kafka トピックを保持できるようになります。
一方向トピック管理を使用している場合は、このタスクを実行できます。
手順
OpenShift で
KafkaTopic
リソースにアノテーションを付け、strimzi.io/managed
をfalse
に設定します。oc annotate kafkatopic my-topic-1 strimzi.io/managed="false"
KafkaTopic
リソース内のトピックのmetadata.name
を指定します。この例ではmy-topic-1
です。KafkaTopic
リソースのステータスをチェックして、リクエストが成功したことを確認します。oc get kafkatopics my-topic-1 -o yaml
Ready
ステータスのトピックの例apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: generation: 124 name: my-topic-1 finalizer: strimzi.io/topic-operator labels: strimzi.io/cluster: my-cluster spec: partitions: 10 replicas: 2 # ... status: observedGeneration: 124 1 topicName: my-topic-1 conditions: - type: Ready status: True lastTransitionTime: 20230301T103000Z
- 1
- リソースの調整が成功すると、トピックは管理されなくなります。
metadata.generation
(デプロイの現在のバージョン) の値は、status.observedGeneration
(リソースの最新の調整) と一致する必要があります。これで、管理していた Kafka トピックに影響を与えることなく、
KafkaTopic
リソースを変更できるようになりました。たとえば、
metadata.name
を変更するには、次のように実行します。元の
KafkTopic
リソースを削除します。oc delete kafkatopic <kafka_topic_name>
-
別の
metadata.name
を使用してKafkTopic
リソースを再作成しますが、元のリソースで管理されていたのと同じトピックを参照するにはspec.topicName
を使用します。
-
元の
KafkaTopic
リソースを削除していないが、Kafka トピックの管理を再度再開したい場合は、strimzi.io/managed
アノテーションをtrue
に設定するか、アノテーションを削除します。