9.9. (预览)在主题 Operator 模式间切换
在升级或降级 AMQ Streams 时,或者在使用同一版本的 AMQ Streams 时切换主题管理模式,只要该版本的模式被支持。
从双向切换到单向主题管理模式
启用
UnidirectionalTopicOperator功能门。Cluster Operator 以单向主题管理模式使用主题 Operator 部署实体 Operator。
支持以双向主题管理模式运行的 Topic Operator 的内部主题不再需要,以便您可以删除
KafkaTopic资源来管理它们:oc delete $(oc get kt -n <namespace_name> -o name | grep strimzi-store-topic) && oc delete $(oc get kt -n <namespace_name> -o name | grep strimzi-topic-operator)
oc delete $(oc get kt -n <namespace_name> -o name | grep strimzi-store-topic) && oc delete $(oc get kt -n <namespace_name> -o name | grep strimzi-topic-operator)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令删除内部主题,其名称为启动
strimzi-store-topic和strimzi-topic-operator。存储消费者偏移和事务状态的内部主题必须保留在 Kafka 中。因此,您必须先停用主题 Operator 管理,然后才能删除
KafkaTopic资源。停用对主题的管理:
oc annotate $(oc get kt -n <namespace_name> -o name | grep consumer-offsets) strimzi.io/managed="false" \ && oc annotate $(oc get kt -n <namespace_name> -o name | grep transaction-state) strimzi.io/managed="false"
oc annotate $(oc get kt -n <namespace_name> -o name | grep consumer-offsets) strimzi.io/managed="false" \ && oc annotate $(oc get kt -n <namespace_name> -o name | grep transaction-state) strimzi.io/managed="false"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过使用
strimzi.io/managed="false"注解KafkaTopic资源,这表示 Topic Operator 不再管理这些主题。在本例中,我们将注释添加到用于管理内部主题的资源,其名称为启动consumer-offsets和transaction-state。当其管理停用时,删除
KafkaTopic资源(不会删除 Kafka 中的主题):oc delete $(oc get kt -n <namespace_name> -o name | grep consumer-offsets) \ && oc delete $(oc get kt -n <namespace_name> -o name | grep transaction-state)
oc delete $(oc get kt -n <namespace_name> -o name | grep consumer-offsets) \ && oc delete $(oc get kt -n <namespace_name> -o name | grep transaction-state)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
从单向切换到双向主题管理模式
禁用
UnidirectionalTopicOperator功能门。Cluster Operator 以双向主题管理模式部署带有主题 Operator 的 Entity Operator。
以双向主题管理模式运行的 Topic Operator 所需的内部主题会被创建。
检查是否使用终结器来控制删除主题。如果
KafkaTopic资源使用终结器,请确保在进行交换机后执行以下操作之一:- 从主题中删除所有终结器。
通过在 Topic Operator
env配置中将STRIMZI_USE_FINALIZERS环境变量设置为false来禁用终结器。对在 AMQ Streams-managed 集群或独立部署中运行的主题 Operator 使用相同的配置。
在 AMQ Streams-managed 集群中禁用主题终结器
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在独立部署中禁用主题终结器
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 主题 Operator 在双向模式中不使用终结器。如果在从单向模式进行切换后保留它们,您将无法删除
KafkaTopic和相关资源。
在主题 Operator 模式间切换后,尝试创建主题以确保 Operator 正确运行。如需更多信息,请参阅 第 9.4 节 “配置 Kafka 主题”。