第 5 章 KafkaClusterSpec 模式参考
使用于: KafkaSpec
使用 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
# ...
这些值可以是以下 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 字段,则使用的镜像会优先选择,如下所示:
-
在 Cluster Operator 配置中的
STRIMZI_DEFAULT_KAFKA_INIT_IMAGE环境变量中指定的容器镜像。 -
registry.redhat.io/amq-streams/strimzi-rhel9-operator:2.8.0container 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
# ...
建议在特殊情况下覆盖容器镜像,例如当您的网络不允许访问 Apache Kafka 使用的容器 registry 时。在这种情况下,您应该复制 Apache Kafka 镜像的 Streams,或者从源构建它们。请注意,如果配置的镜像与 Apache Kafka 镜像的 Streams 不兼容,它可能无法正常工作。