10.7. 为现有 Kafka 主题启用主题管理
此流程描述了如何为当前没有通过 KafkaTopic
资源管理的主题启用主题管理。您可以通过创建匹配的 KafkaTopic
资源来实现此目的。
如果您使用无方向性的主题管理,您可以执行此任务。
流程
使用与 Kafka 主题相同的
metadata.name
创建KafkaTopic
资源。或者,如果 Kafka 中的主题名称不是法律 OpenShift 资源名称,则使用
spec.topicName
。Kafka 主题配置示例
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: name: my-topic-1 labels: strimzi.io/cluster: my-cluster spec: partitions: 10 replicas: 2
在本例中,Kafka 主题名为
my-topic-1
。主题 Operator 检查主题是否由另一个
KafkaTopic
资源管理。如果是,旧的资源具有优先权,并在新资源状态中返回资源冲突错误。应用
KafkaTopic
资源:oc apply -f <topic_configuration_file>
等待 Operator 更新 Kafka 中的主题。
Operator 使用具有相同名称的
KafkaTopic
的spec
更新 Kafka 主题。检查
KafkaTopic
资源的状态,以确保请求成功:oc get kafkatopics my-topic-1 -o yaml
具有
Ready
状态的主题示例apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaTopic metadata: generation: 1 name: my-topic-1 labels: strimzi.io/cluster: my-cluster spec: partitions: 10 replicas: 2 # ... status: observedGeneration: 1 1 topicName: my-topic-1 conditions: - type: Ready status: True lastTransitionTime: 20230301T103000Z
- 1
- 对资源成功协调意味着主题现已被管理。
metadata.generation
(部署的当前版本)的值必须与 status.observedGeneration (资源的最新协调)匹配
。