strimzi运算子0.20 kafka'useServiceDnsDomain'无效

问题描述

问题: 由于某种原因,客户端pod只能解析完全合格的完全合格的DNS名称包括集群服务后缀。

该问题在以下问题中陈述: AKS,WIndows Node,dns does not resolve service until fully qualified name is used

解决此问题,我正在使用useServicednsDomain标志。文档(https://strimzi.io/docs/operators/master/using.html#type-GenericKafkaListenerConfiguration-schema-reference)解释为

配置是否应使用Kubernetes服务DNS域或 不。如果设置为true,则生成的地址包含服务 DNS域后缀(认情况下为.cluster.local,可以使用 环境变量KUBERNETES_SERVICE_DNS_DOMAIN)。认为 false。此字段只能与内部类型侦听器一起使用。

我的部分Yaml如下

apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
Metadata:
  name: tt-kafka
  namespace: shared
spec:
  kafka:
    version: 2.5.0
    replicas: 3
    listeners:
      - name: local
        port: 9092
        type: internal
        tls: false
        useServicednsDomain: true

这没有做任何事情,因此我也尝试添加如下所示的KUBERNETES_SERVICE_DNS_DOMAIN

template:
  kafkaContainer:
    env:
      - name: KUBERNETES_SERVICE_DNS_DOMAIN
        value: .cluster.local

strimzi / operator:0.20.0图片正在使用。

在我的客户端(.net Confluent.Kafka 1.4.4)中,我使用tt-kafka-kafka-bootstrap.shared.svc.cluster.local作为BootstrapServers。 它给我错误

错误:GroupCoordinator:无法解决 'tt-kafka-kafka-2.tt-kafka-kafka-brokers.shared.svc:9092':否这样 主机是已知的。

我希望代理服务能够为客户端提供全名,但是从错误看来useServicednsDomain无效。

感谢您的帮助。谢谢。

解决方法

https://github.com/strimzi/strimzi-kafka-operator/issues/3898中所述,文档中有一个错字。正确的YAML是:

  listeners:
    - name: plain
      port: 9092
      type: internal
      tls: false
      configuration:
        useServiceDnsDomain: true

如果您的域不同于.cluster.local,则可以使用KUBERNETES_SERVICE_DNS_DOMAIN env var覆盖它。但是您必须在Strimzi Cluster Operator窗格上对其进行配置。不在卡夫卡豆荚上:https://strimzi.io/docs/operators/latest/full/using.html#ref-operator-cluster-str