B.4.2. config

使用 配置 属性将 Kafka 代理配置为带有以下 JSON 类型值之一的密钥:

  • 字符串
  • 数字
  • 布尔值

您可以指定并配置 Apache Kafka 文档中的 "Broker Configs"部分中除由 AMQ Streams 直接管理的选项之外的所有选项。具体来说,所有键为等于或以以下任一字符串开头的配置选项将被禁止:

  • 监听程序
  • 已公告.
  • broker.
  • listener.
  • host.name
  • 端口
  • inter.broker.listener.name
  • SASL.
  • ssl.
  • 安全性.
  • password.
  • principal.builder.class
  • log.dir
  • zookeeper.connect
  • zookeeper.set.acl
  • authorizer.
  • super.user

config 属性中存在禁止选项时,会忽略它,并把警告信息输出到 Cluster Operator 日志文件中。所有其他支持的选项都传递给 Kafka。

禁止的选项有例外。对于使用特定 密码套件 作为 TLS 版本进行客户端连接,您可以配置 allowed ssl 属性。您还可以配置 zookeeper.connection.timeout.ms 属性,以设置建立 ZooKeeper 连接的最长时间。

Kafka 代理配置示例

apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    config:
      num.partitions: 1
      num.recovery.threads.per.data.dir: 1
      default.replication.factor: 3
      offsets.topic.replication.factor: 3
      transaction.state.log.replication.factor: 3
      transaction.state.log.min.isr: 1
      log.retention.hours: 168
      log.segment.bytes: 1073741824
      log.retention.check.interval.ms: 300000
      num.network.threads: 3
      num.io.threads: 8
      socket.send.buffer.bytes: 102400
      socket.receive.buffer.bytes: 102400
      socket.request.max.bytes: 104857600
      group.initial.rebalance.delay.ms: 0
      ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
      ssl.enabled.protocols: "TLSv1.2"
      ssl.protocol: "TLSv1.2"
      zookeeper.connection.timeout.ms: 6000
    # ...

属性描述

replicas

集群中的 pod 数量。

整数

镜像

容器集的 docker 镜像。默认值为配置的 Kafka.spec.kafka.version

字符串

storage

存储配置(磁盘)。无法更新。类型取决于给定对象中 storage.type 属性的值,它必须是 [ephemeral, persistent-claim, jbod] 之一。

EphemeralStoragePersistentClaimStorageJbodStorage

监听程序

配置 Kafka 代理的监听程序。

GenericKafkaListener 阵列或 KafkaListeners

授权

Kafka 代理的授权配置。类型取决于给定对象中的 authorization.type 属性的值,必须是 [simple、opa、keycloak] 中的一个。

KafkaAuthorizationSimple, KafkaAuthorizationOpa, KafkaAuthorizationKeycloak

config

无法设置带有以下前缀的 Kafka 代理配置属性:监听器、公告的.、代理.、监听器.、host.name、端口、inter.broker.listener.name、sasl.、ssl.、security.、security.builder.class、log.dir、zookeeper.connect、zookeeper.set.acl、 zookeeper.ssl, zookeeper.clientCnxnSocket, authorizer., super.user, cruise.control.metrics.topic, cruise.control.metrics.reporter.bootstrap.servers(以下除外: zookeeper.connection.timeout.ms, ssl.cipher.suites, SSL.protocol, ssl.enabled.protocols,cruise.control.metrics.topic.num.partitions, cruise.control.metrics.topic.replication.factor, cruise.control.metrics.topic.retention.ms,cruise.control.metrics.topic.auto.create.reries, cruise.control.metrics.topic.auto.create.timeout.ms。

map

rack

配置 broker.rack 代理配置。

rack

brokerRackInitImage

用于初始化 broker.rack 的 init 容器镜像。

字符串

关联性

属性 关联性 已弃用。现在,这个功能应该在路径 spec.kafka.template.pod.affinity 中配置。pod 的关联性规则。请参阅有关 内核/v1 关联性 的外部文档.

关联性

容限(tolerations)

属性 容限 已弃用。现在应该在路径 spec.kafka.template.pod.tolerations 中配置这个功能。pod 的容限。请参阅 内核/v1 容限 的外部文档。

容限 数组

livenessProbe

Pod 存活度检查.

probe

readinessProbe

Pod 就绪度检查。

probe

jvmOptions

容器集的 JVM 选项.

JvmOptions

jmxOptions

Kafka 代理的 JMX 选项.

KafkaJmxOptions

资源

要保留的 CPU 和内存资源。请参阅 内核/v1 资源要求的外部文档

ResourceRequirements

metrics

Prometheus JMX 导出器配置.有关此配置结构的详情,请查看 https://github.com/prometheus/jmx_exporter

map

logging

Kafka 的日志配置。类型取决于给定对象中的 logging.type 属性的值,它必须是 [inline, external] 之一。

InlineLogging, ExternalLogging

tlsSidecar

attribute tlsSidecar 已被弃用。TLS sidecar 配置.

TlsSidecar

模板

Kafka 集群资源的模板。该模板允许用户指定 StatefulSetPod 和服务 生成的方式。

KafkaClusterTemplate

version

kafka 代理版本。默认值为 2.6.0。请参阅用户文档以了解升级或降级版本所需的流程。

字符串