问题:出于某些原因,客户端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.This字段只能与内部类型侦听器一起使用。
我的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/操作符:正在使用0.20.0图像。
在我的客户机(.net Confluent.Kafka 1.4.4)中,我使用了BootstrapServers。它给了我错误,因为
'tt-kafka-kafka-2.tt-kafka-kafka-brokers.shared.svc:9092':错误: GroupCoordinator:未能解决
,不知道此类主机。
我希望代理服务能够为客户端提供全名,但是从错误来看,useServiceDnsDomain似乎没有任何效果。
任何帮助都是非常感谢的。谢谢。
发布于 2020-10-30 13:30:09
正如在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覆盖它。但是,您必须在Strimzi集群操作符pod上配置它。卡夫卡豆荚上没有:https://strimzi.io/docs/operators/latest/full/using.html#ref-operator-cluster-str
https://stackoverflow.com/questions/64599270
复制相似问题