6.5. 配置功能门


AMQ Streams 操作器支持 功能门,以启用或禁用某些功能和功能。启用功能门更改了相关 Operator 的行为,并为 AMQ Streams 部署引入该功能。

功能门的默认状态是 enableddisabled

要修改功能门的默认状态,请在 Operator 配置中使用 STRIMZI_FEATURE_GATES 环境变量。您可以使用这个单一环境变量修改多个功能门。指定以逗号分隔的功能门名称和前缀列表。+ 前缀可启用功能门,而 - 前缀会禁用它。

启用 FeatureGate1 并禁用 FeatureGate2的功能门配置示例

env:
  - name: STRIMZI_FEATURE_GATES
    value: +FeatureGate1,-FeatureGate2
Copy to Clipboard Toggle word wrap

6.5.1. ControlPlaneListener 功能门

ControlPlaneListener 功能门默认状态为 enabled

使用 ControlPlaneListener 功能门更改用于 Kafka 集群内间的通信路径。在 AMQ Streams 中,control plane 流量由控制器连接组成,用于维护 Kafka 集群所需状态。data plane 流量主要由领导代理和后续代理间的数据复制组成。

启用 ControlPlaneListener 时,control plane 流量通过端口 9090 上的专用 control plane 侦听程序。data plane 流量在端口 9091 上继续使用内部监听程序。

使用 control plane 监听器可能会提高性能,因为重要的控制器连接(如分区领导更改)不会被代理中的数据复制延迟。

禁用 ControlPlaneListener 功能门

要禁用 ControlPlaneListener 功能门,请在 Cluster Operator 配置中的 STRIMZI_FEATURE_GATES 环境变量中指定 -ControlPlaneListener。当禁用 ControlPlaneListener 功能门时,control plane 和 data plane 流量通过端口 9091 上的同一内部监听程序。这是引入功能门前的默认行为。

重要

从或降级到 AMQ Streams 1.7 及更早的版本时,必须禁用 ControlPlaneListener 功能门。

6.5.2. ServiceAccountPatching 功能门

ServiceAccountPatching 功能门的默认状态 已启用

默认情况下,Cluster Operator 会协调服务帐户并根据需要更新它们。例如,您可以在已经创建操作对象后更改服务帐户标签和注解。要禁用服务帐户修补,禁用 ServiceAccountPatching 功能门。

禁用 ServiceAccountPatching 功能门

要禁用 ServiceAccountPatching 功能门,请在 Cluster Operator 配置中的 STRIMZI_FEATURE_GATES 环境变量中指定 -ServiceAccountPatching ing。

6.5.3. UseStrimziPodSets 功能门

UseStrimziPodSets 功能门默认状态为 disabled

目前,AMQ Streams 依赖于 StatefulSets 为 ZooKeeper 和 Kafka 集群创建和管理 pod。AMQ Streams 创建 StatefulSet,OpenShift 会根据 StatefulSet 定义创建 pod。删除 Pod 后,OpenShift 会负责重新创建它。StatefulSets 的使用有以下限制:

  • Pod 始终根据其索引号创建或删除
  • StatefulSet 中的所有 pod 需要有类似的配置
  • 在 StatefulSet 中更改 Pod 的存储配置复杂

UseStrimziPodSets 功能门引入了用于管理名为 StrimziPodSet 的 pod 的资源。启用功能门后,会使用这个资源而不是 StatefulSets。AMQ Streams 处理 pod 的创建和管理,而不是 OpenShift。使用 StrimziPodSets 而不是 StatefulSets 可提供更多对功能的控制。

启用 UseStrimziPodSets 功能门

要启用 UseStrimziPodSets 功能门,在 Cluster Operator 配置中指定 STRIMZI_FEATURE_GATES 环境变量中的 +UseStrimziPodSets

重要

在将 UseStrimziPodSets 功能门降级到 AMQ Streams 2.0 及更早的版本时,必须禁用使用StrimziPodSets 功能门。

6.5.4. (Preview) UseKRaft 功能门

UseKRaft 功能门的默认状态为 disabled

UseKRaft 功能门在 KRaft (Kafka Raft 元数据)模式下部署 Kafka 集群,而无需 ZooKeeper。此功能门目前仅用于开发和测试。

重要

KRaft 模式还无法在 Apache Kafka 或 AMQ Streams 中提供。

启用 UseKRaft 功能门时,Kafka 集群会在没有 ZooKeeper 的情况下部署。Kafka 自定义资源中的 .spec.zookeeper 属性将被忽略,但仍然需要存在。UseKRaft 功能门提供了一个 API,用于配置 Kafka 集群节点及其角色。API 仍在开发中,预期在 KRaft 模式生产就绪前更改。

目前,AMQ Streams 中的 KRaft 模式有以下主要限制:

  • 不支持从 ZooKeeper 移动到 KRaft 集群或其他方法。
  • 不支持升级和降级 Apache Kafka 版本或 AMQ Streams operator。用户可能需要删除集群,升级 Operator 并部署一个新的 Kafka 集群。
  • 不支持 Entity Operator (包括用户 Operator 和主题操作器)。spec.entityOperator 属性 必须被删除(从 Kafka 自定义资源中)。
  • 不支持简单的授权。
  • 不支持 SCRAM-SHA-512 验证。
  • 不支持 JBOD 存储。可以使用 type: jbod 存储,但 JBOD 数组只能包含一个磁盘。
  • 存活度和就绪度探测被禁用。
  • 所有 Kafka 节点都有 controllerbroker KRaft 角色。不支持具有独立 controllerbroker 节点的 Kafka 集群。

启用 UseKRaft 功能门

要启用 UseKRaft 功能门,请在 Cluster Operator 配置中的 STRIMZI_FEATURE_GATES 环境变量中指定 +UseKRaft

重要

UseKRaft 功能门取决于 UseStrimziPodSets 功能门。启用 UseKRaft 功能门时,请确保也启用了 USeStrimziPodSets 功能门。

6.5.5. 功能门发行版本

功能门的成熟度有三个阶段:

  • alpha - 通常默认禁用
  • beta - 通常默认启用
  • GA (GA)- 通常总是启用

Alpha 阶段功能可能是实验性或不稳定,可能随时更改,或不充分测试用于生产用途。测试良好的测试阶段功能已充分测试,其功能不太可能改变。GA 阶段功能稳定,不应在以后改变。如果 alpha 和 beta 阶段功能没有证明有用,则会移除它们。

  • ControlPlaneListener 功能门移到 AMQ Streams 2.0 中的 beta 阶段。
  • ServiceAccountPatching 功能门移到 AMQ Streams 2.0 中的 beta 阶段。
  • UseStrimziPodSets 功能门目前位于 alpha 阶段。
  • UseKRaft 功能门仅适用于开发,目前没有计划迁移至 beta 阶段的版本。
注意

功能门在到达 GA 时可能会被删除。这意味着该功能已合并到 AMQ Streams 核心功能中,且无法禁用。

Expand
表 6.1. 功能门和 AMQ Streams 版本在移到 alpha、beta 或 GA 时
功能门alphabetaGA

ControlPlaneListener

1.8

2.0

-

ServiceAccountPatching

1.8

2.0

-

UseStrimziPodSets

2.1

-

-

UseKRaft

2.2

-

-

如果启用了功能门,您可能需要在从特定的 AMQ Streams 版本升级或降级前禁用它。下表显示了在升级或降级 AMQ Streams 版本时需要禁用哪些功能门。

Expand
表 6.2. 功能门在升级或降级 AMQ Streams 时禁用
禁用功能门从 AMQ Streams 版本升级降级到 AMQ Streams 版本

ControlPlaneListener

1.7 及更早版本

1.7 及更早版本

UseStrimziPodSets

-

2.0 及更早版本

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat