第 5 章 KafkaClusterSpec 模式参考


使用于: KafkaSpec

KafkaClusterSpec 模式属性的完整列表

使用 Kafka 自定义资源配置 Kafka 集群。

config 属性是资源整体配置的一部分。使用 config 属性将 Kafka 代理选项配置为密钥。

Kafka 配置示例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    version: 3.8.0
    metadataVersion: 3.8
    # ...
    config:
      auto.create.topics.enable: "false"
      offsets.topic.replication.factor: 3
      transaction.state.log.replication.factor: 3
      transaction.state.log.min.isr: 2
      default.replication.factor: 3
      min.insync.replicas: 2
# ...
Copy to Clipboard Toggle word wrap

这些值可以是以下 JSON 类型之一:

  • 字符串
  • Number
  • 布尔值

例外

您可以指定并配置 Apache Kafka 文档 中列出的选项。

但是,Apache Kafka 的流负责配置和管理与以下内容相关的选项,而这无法更改:

  • 安全性(加密、身份验证和授权)
  • 侦听器配置
  • 代理 ID 配置
  • 配置日志数据目录
  • Inter-broker 通信
  • ZooKeeper 连接

无法设置具有以下前缀的属性:

  • advertised.
  • 授权者.
  • broker.
  • controller
  • cruise.control.metrics.reporter.bootstrap.
  • cruise.control.metrics.topic
  • host.name
  • inter.broker.listener.name
  • 侦听器.
  • 监听器.
  • log.dir
  • 密码。
  • 端口
  • process.roles
  • SASL。
  • 安全性。
  • servers,node.id
  • ssl.
  • super.user
  • zookeeper.clientCnxnSocket
  • zookeeper.connect
  • zookeeper.set.acl
  • zookeeper.ssl

如果 config 属性包含一个无法更改的选项,它将被忽略,并将警告信息记录到 Cluster Operator 日志文件。所有其他支持选项都转发到 Kafka,包括对 Apache Kafka 的 Streams 配置的选项的以下例外:

  • 支持的 TLS 版本和密码套件的任何 ssl 配置
  • zookeeper.connection.timeout.ms 属性的配置,以设置建立 ZooKeeper 连接的最大时间
  • Cruise Control 指标属性:

    • cruise.control.metrics.topic.num.partitions
    • cruise.control.metrics.topic.replication.factor
    • cruise.control.metrics.topic.retention.ms
    • cruise.control.metrics.topic.auto.create.retries
    • cruise.control.metrics.topic.auto.create.timeout.ms
    • cruise.control.metrics.topic.min.insync.replicas
  • 控制器属性:

    • controller.quorum.election.backoff.max.ms
    • controller.quorum.election.timeout.ms
    • controller.quorum.fetch.timeout.ms

5.1. 配置机架感知和 init 容器镜像

使用 rack 属性启用机架感知。启用机架感知后,Kafka 代理 pod 使用 init 容器从 OpenShift 集群节点收集标签。此 init 容器的容器镜像可以使用 brokerRackInitImage 属性来指定。如果没有提供 brokerRackInitImage 字段,则使用的镜像会优先选择,如下所示:

  1. 在 Cluster Operator 配置中的 STRIMZI_DEFAULT_KAFKA_INIT_IMAGE 环境变量中指定的容器镜像。
  2. registry.redhat.io/amq-streams/strimzi-rhel9-operator:2.8.0 container image.

brokerRackInitImage 配置示例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    brokerRackInitImage: my-org/my-image:latest
    # ...
Copy to Clipboard Toggle word wrap

注意

建议在特殊情况下覆盖容器镜像,例如当您的网络不允许访问 Apache Kafka 使用的容器 registry 时。在这种情况下,您应该复制 Apache Kafka 镜像的 Streams,或者从源构建它们。请注意,如果配置的镜像与 Apache Kafka 镜像的 Streams 不兼容,它可能无法正常工作。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat