7.4. (Preview) UseKRaft 功能门
UseKRaft
功能门具有 禁用的 默认状态。
UseKRaft
功能门在没有 ZooKeeper 的情况下在 KRaft (Kafka Raft 元数据)模式中部署 Kafka 集群。ZooKeeper 和 KRaft 是用于管理 Kafka 集群中元数据和协调操作的机制。KRaft 模式消除了对 ZooKeeper 等外部协调服务的需求。在 KRaft 模式中,Kafka 节点使用代理、控制器或两者的角色。它们一起管理元数据,该元数据在分区之间复制。控制器负责协调操作和维护集群的状态。
此功能门目前仅适用于开发和测试。
KRaft 模式在 Apache Kafka 或 AMQ Streams 中不适用于生产环境。
启用 UseKRaft
功能门需要启用 KafkaNodePools
功能门。要以 KRaft 模式部署 Kafka 集群,您必须使用 KafkaNodePool
资源。如需了解更多详细信息和示例,请参阅 第 6.3.2 节 “(预览)部署 Kafka 节点池”。
当启用 UseKRaft
功能门时,Kafka 集群会在没有 ZooKeeper 的情况下部署。Kafka
自定义资源中的 .spec.zookeeper
属性会被忽略,但仍然需要存在。UseKRaft
功能门提供了一个 API,用于配置 Kafka 集群节点及其角色。API 仍在开发中,预期在 KRaft 模式为生产环境就绪前有所变化。
目前,AMQ Streams 中的 KRaft 模式有以下主要限制:
- 不支持从 ZooKeeper 移动到 KRaft 集群或其他方法。
- 只有 controller-only 节点无法单独进行滚动更新或单独更新。
- 不支持升级和降级 Apache Kafka 版本或 AMQ Streams operator。用户可能需要删除集群,升级 Operator 并部署一个新的 Kafka 集群。
-
KRaft 模式 只支持 Un idirectional Topic Operator。您可以使用
UnidirectionalTopicOperator
功能门启用它。不支持 Bidirectional Topic Operator,当没有启用UnidirectionalTopicOperator
功能门时,spec.entityOperator.topicOperator
属性 必须从Kafka
自定义资源中删除。 -
不支持 JBOD 存储。可以使用
type: jbod
存储,但 JBOD 数组只能包含一个磁盘。
启用 UseKRaft 功能门
要启用 UseKRaft
功能门,在 Cluster Operator 配置中的 STRIMZI_FEATURE_GATES
环境变量中指定 +UseKRaft,+KafkaNodePools
。