B.80. KafkaConnectSpec 模式参考

用于:KafkaConnect

配置 Kafka Connect 集群。

B.80.1. config

使用 config 属性将 Kafka 选项配置为密钥。

标准 Apache Kafka Connect 配置可能会提供,仅限于那些不是由 AMQ Streams 直接管理的属性。

无法配置的选项与以下内容相关:

  • Kafka 集群 bootstrap 地址
  • 安全(加密、身份验证和授权)
  • 侦听器/REST 接口配置
  • 插件路径配置

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

  • 字符串
  • 数字
  • 布尔值

您可以指定并配置 Apache Kafka 文档 中列出的选项,但那些直接由 AMQ Streams 管理的选项除外。具体来说,键等于或以以下任一字符串开头的配置选项将被禁止:

  • ssl.
  • SASL.
  • 安全性.
  • 监听程序
  • plugin.path
  • REST.
  • bootstrap.servers

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

重要

Cluster Operator 不会验证提供的 config 对象中的密钥或值。当提供无效的配置时,Kafka Connect 集群可能无法启动或变得不稳定。在这种情形中,修复 KafkaConnect.spec.configKafkaConnectS2I.spec.config 对象中的配置,然后 Cluster Operator 可将新配置部署到所有 Kafka Connect 节点。

某些选项有默认值:

  • 默认值 connect-cluster 的 Group.id
  • 默认值为 connect-cluster-offsetsoffset.storage.topic
  • 带有默认值 connect-cluster-configsconfig.storage.topic
  • status.storage.topic,默认值为 connect-cluster-status
  • key.converter 默认值为 org.apache.kafka.connect.json.JsonConverter
  • value.converter,默认值为 org.apache.kafka.connect.json.JsonConverter

如果 KafkaConnect.spec. config 或 KafkaConnectS2I.spec.config 属性中不存在这些选项,则会自动配置这些选项。

禁止的选项有例外。您可以使用三个允许的 ssl 配置选项用于使用 TLS 版本的特定 密码套件 进行客户端连接。密码套件组合了用于安全连接和数据传输的算法。您还可以配置 ssl.endpoint.identification.algorithm 属性来 启用或禁用主机名验证。

Kafka Connect 配置示例

apiVersion: kafka.strimzi.io/v1beta1
kind: KafkaConnect
metadata:
  name: my-connect
spec:
  # ...
  config:
    group.id: my-connect-cluster
    offset.storage.topic: my-connect-cluster-offsets
    config.storage.topic: my-connect-cluster-configs
    status.storage.topic: my-connect-cluster-status
    key.converter: org.apache.kafka.connect.json.JsonConverter
    value.converter: org.apache.kafka.connect.json.JsonConverter
    key.converter.schemas.enable: true
    value.converter.schemas.enable: true
    config.storage.replication.factor: 3
    offset.storage.replication.factor: 3
    status.storage.replication.factor: 3
    ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
    ssl.enabled.protocols: "TLSv1.2"
    ssl.protocol: "TLSv1.2"
    ssl.endpoint.identification.algorithm: HTTPS
  # ...

对于使用特定 密码套件 作为 TLS 版本进行客户端连接,您可以配置 allowed ssl 属性。您还可以 配置 ssl.endpoint.identification.algorithm 属性来 启用或禁用主机名验证。