搜索

10.6. 管理 KafkaTopic 资源,而不影响 Kafka 主题

download PDF

此流程描述了如何当前通过 KafkaTopic 资源管理的 Kafka 主题转换为非管理的主题。此功能在各种情况下非常有用。例如,您可能想要更新 KafkaTopic 资源的 metadata.name。您只能通过删除原始 KafkaTopic 资源并重新创建新资源来完成此操作。

通过使用 strimzi.io/managed=false 注解 KafkaTopic 资源,这表示 Topic Operator 应该不再管理该特定主题。这可让您在更改资源的配置或其他管理任务时保留 Kafka 主题。

如果您使用无方向性的主题管理,您可以执行此任务。

流程

  1. 在 OpenShift 中注解 KafkaTopic 资源,将 strimzi.io/managed 设置为 false

    oc annotate kafkatopic my-topic-1 strimzi.io/managed="false"

    KafkaTopic 资源中指定主题的 metadata.name,本例中为 my-topic-1

  2. 检查 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 (资源的最新协调)匹配

  3. 现在,您可以在不影响管理的 Kafka 主题的情况下更改 KafkaTopic 资源。

    例如,要更改 metadata.name,请执行以下操作:

    1. 删除原始 KafkTopic 资源:

      oc delete kafkatopic <kafka_topic_name>
    2. 重新创建具有不同 metadata.nameKafkTopic 资源,但使用 spec.topicName 来引用由原始管理的相同主题
  4. 如果您没有删除原始 KafkaTopic 资源,并且您希望再次恢复管理 Kafka 主题,请将 strimzi.io/managed 注解设置为 true 或删除注解。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.