【发布时间】:2021-02-12 09:04:45
【问题描述】:
问题: 由于某种原因,客户端 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
srimzi/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 似乎没有效果。
感谢任何帮助。谢谢。
【问题讨论】:
标签: kubernetes apache-kafka strimzi confluent-kafka-dotnet