10.8. 管理トピックの削除
一方向トピック管理は、OpenShift ファイナライザーの有無にかかわらず、KafkaTopic
リソースを通じて管理されるトピックの削除をサポートします。これは、STRIMZI_USE_FINALIZERS
Topic Operator 環境変数によって決定されます。デフォルトでは、これは true
に設定されます。ただし、Topic Operator でファイナライザーを追加する必要がない場合は、Topic Operator env
設定で false
に設定できます。
ファイナライザーは、KafkaTopic
リソースを順番に削除および制御します。Topic Operator のファイナライザーが KafkaTopic
リソースのメタデータに追加されます。
トピックの削除を制御するファイナライザー
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: generation: 1 name: my-topic-1 finalizers: - strimzi.io/topic-operator labels: strimzi.io/cluster: my-cluster
この例では、トピック my-topic-1
にファイナライザーが追加されます。ファイナライザーは、ファイナライズプロセスが完了するまでトピックが完全に削除されないようにします。次に、oc delete kafkatopic my-topic-1
を使用してトピックを削除すると、タイムスタンプがメタデータに追加されます。
削除時のファイナライザーのタイムスタンプ
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: generation: 1 name: my-topic-1 finalizers: - strimzi.io/topic-operator labels: strimzi.io/cluster: my-cluster deletionTimestamp: 20230301T000000.000
リソースは引き続き存在します。削除に失敗した場合は、リソースのステータスにその旨が表示されます。
ファイナライゼーションタスクが正常に実行されると、ファイナライザーがメタデータから削除され、リソースが完全に削除されます。
ファイナライザーは、関連リソースが削除されないように防ぐ役割を果たします。一方向 Topic Operator が実行されていない場合、ファイナライザーを metadata.finalizers
から削除できません。また、KafkaTopic
リソースまたは namespace を直接削除しようとすると、失敗するかタイムアウトになり、namespace が停止停止状態のままになります。この問題が発生した場合は、トピックのファイナライザーを削除する ことで、ファイナライズプロセスをバイパスできます。