strimzi operator 0.20 kafka 'useServiceDnsDomain' 没有效果
strimzi operator 0.20 kafka 'useServiceDnsDomain' has no effect
问题:
由于某种原因,客户端 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 ) 将其解释为
Configures whether the Kubernetes service DNS domain should be used or
not. If set to true, the generated addresses with contain the service
DNS domain suffix (by default .cluster.local, can be configured using
environment variable KUBERNETES_SERVICE_DNS_DOMAIN). Defaults to
false.This field can be used only with internal type listener.
我的部分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。
它给了我错误
Error: GroupCoordinator: Failed to resolve
'tt-kafka-kafka-2.tt-kafka-kafka-brokers.shared.svc:9092': No such
host is known.
我希望代理服务向客户端提供全名,但从错误来看,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
环境变量来覆盖它。但是您必须在 Strimzi Cluster Operator pod 上配置它。不在 Kafka pods: https://strimzi.io/docs/operators/latest/full/using.html#ref-operator-cluster-str
问题: 由于某种原因,客户端 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 ) 将其解释为
Configures whether the Kubernetes service DNS domain should be used or not. If set to true, the generated addresses with contain the service DNS domain suffix (by default .cluster.local, can be configured using environment variable KUBERNETES_SERVICE_DNS_DOMAIN). Defaults to false.This field can be used only with internal type listener.
我的部分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。 它给了我错误
Error: GroupCoordinator: Failed to resolve 'tt-kafka-kafka-2.tt-kafka-kafka-brokers.shared.svc:9092': No such host is known.
我希望代理服务向客户端提供全名,但从错误来看,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
环境变量来覆盖它。但是您必须在 Strimzi Cluster Operator pod 上配置它。不在 Kafka pods: https://strimzi.io/docs/operators/latest/full/using.html#ref-operator-cluster-str