9.6. (预览)管理 KafkaTopic 资源,而不影响 Kafka 主题
此流程描述了如何当前通过 KafkaTopic 资源管理的 Kafka 主题转换为非管理的主题。此功能在各种情况下非常有用。例如,您可能想要更新 KafkaTopic 资源的 metadata.name。您只能通过删除原始 KafkaTopic 资源并重新创建新资源来完成此操作。
通过使用 strimzi.io/managed=false 注解 KafkaTopic 资源,这表示 Topic Operator 应该不再管理该特定主题。这可让您在更改资源的配置或其他管理任务时保留 Kafka 主题。
如果您使用无方向性的主题管理,您可以执行此任务。
单向主题管理作为技术预览提供。默认情况下,不启用单向主题管理,因此您必须 启用 UnidirectionalTopicOperator 功能门 才能使用它。
流程
在 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或删除注解。