7.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

7.5.1. ControlPlaneListener 功能门

ControlPlaneListener 功能门已移到 GA,这意味着它现已永久启用且无法禁用。在启用了 ControlPlaneListener 的情况下,Kafka 控制器和代理之间的连接在端口 9090 上使用 一个内部 control plane 侦听器。在代理之间复制数据,以及来自 AMQ Streams operator 的内部连接、Cruise Control 或 Kafka Exporter 在端口 9091 上使用 复制监听程序

重要

永久启用 ControlPlaneListener 功能门后,现在可以在 AMQ Streams 1.7 及更早版本和 AMQ Streams 2.3 及更新版本之间直接升级或降级。您必须通过其中一个 AMQ Streams 版本进行升级或降级。

7.5.2. ServiceAccountPatching 功能门

ServiceAccountPatching 功能门已移到 GA,这意味着它现已永久启用且无法禁用。启用 ServiceAccountPatching 后,Cluster Operator 始终协调服务帐户并根据需要更新它们。例如,当您使用自定义资源的 template 属性更改服务帐户标签或注解时,Operator 会在现有服务帐户资源中自动更新它们。

7.5.3. UseStrimziPodSets 功能门

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

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

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

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

禁用 UseStrimziPodSets 功能门

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

重要

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

7.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 集群。
  • 不支持主题 Operator。spec.entityOperator.topicOperator 属性需要从 Kafka 自定义资源中删除
  • 不支持 SCRAM-SHA-512 验证。
  • 不支持 JBOD 存储。可以使用 type: jbod 存储,但 JBOD 数组只能包含一个磁盘。
  • 存活度和就绪度探测被禁用。
  • 所有 Kafka 节点都有 controllerbroker KRaft 角色。不支持具有独立 controllerbroker 节点的 Kafka 集群。

启用 UseStrimziPodSets 功能门

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

重要

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

7.5.5. 功能门发行版本

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

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

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

  • ControlPlaneListener 功能门在 AMQ Streams 2.3 中进入 GA。现在它被永久启用且无法禁用。
  • ServiceAccountPatching 功能门在 AMQ Streams 2.3 中进入 GA。现在它被永久启用且无法禁用。
  • UseStrimziPodSets 功能门移至 AMQ Streams 2.3 中的 beta 阶段。
  • UseKRaft 功能门仅适用于开发,目前没有计划迁移至 beta 阶段的版本。
注意

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

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

ControlPlaneListener

1.8

2.0

2.3

ServiceAccountPatching

1.8

2.0

2.3

UseStrimziPodSets

2.1

2.3

-

UseKRaft

2.2

-

-

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

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

ControlPlaneListener

1.7 及更早版本

1.7 及更早版本

UseStrimziPodSets

-

2.0 及更早版本

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat