升级Kafka后Milvus DataNode无法连接,回滚仍异常求助
问题背景
运行Milvus 2.3.11,使用Bitnami Kafka作为日志代理,将Kafka从bitnami/kafka:3.1.0-debian-10-r52升级到3.7.0-debian-12-r6后,DataNode持续抛出以下错误:
FAIL|rdkafka#consumer-6| [thrd:GroupCoordinator]: GroupCoordinator: milvus-kafka-0.milvus-kafka-headless.milvus-database.svc.cluster.local:9092: Failed to resolve 'milvus-kafka-0.milvus-kafka-headless.milvus-database.svc.cluster.local:9092': Name or service not known (after 2ms in state CONNECT, 1 identical error(s) suppressed)
同一命名空间内的其他Pod执行nslookup可正常解析该域名,回滚Kafka版本、重启Kafka和DataNode Pod后问题仍存在。
排查步骤
检查DataNode Pod的DNS配置
进入DataNode Pod,查看DNS配置文件,确认nameserver指向集群CoreDNS,且搜索域包含正确的后缀:cat /etc/resolv.conf正常配置应包含类似以下内容:
nameserver 10.96.0.10 search milvus-database.svc.cluster.local svc.cluster.local cluster.local options ndots:5在DataNode Pod内测试DNS解析
直接在DataNode Pod内部执行解析命令,验证是否真的无法解析目标域名:nslookup milvus-kafka-0.milvus-kafka-headless.milvus-database.svc.cluster.local dig milvus-kafka-0.milvus-kafka-headless.milvus-database.svc.cluster.local如果解析失败,说明DataNode的DNS配置存在异常;如果解析成功,问题可能出在librdkafka的客户端配置上。
调整librdkafka的DNS缓存策略
Milvus依赖librdkafka连接Kafka,新版本Kafka可能触发了DNS缓存问题,尝试在Milvus配置中添加或修改以下参数:enable.dns.cache=false dns.ttl=0对应环境变量设置:
KAFKA_CONSUMER_ENABLE_DNS_CACHE=false KAFKA_CONSUMER_DNS_TTL=0验证Kafka Headless Service的端点状态
检查Kafka Headless Service是否正确关联到Kafka Pod:# 查看Service详情 kubectl describe service milvus-kafka-headless -n milvus-database # 查看端点列表 kubectl get endpoints milvus-kafka-headless -n milvus-database确认端点中包含
milvus-kafka-0Pod的IP,且Pod的就绪探针状态正常。检查Kafka的监听配置
验证Kafka升级后的listeners和advertised.listeners配置是否正确,确保Headless Service域名被正确设置:kubectl exec -it milvus-kafka-0 -n milvus-database -- cat /opt/bitnami/kafka/config/server.properties | grep -E "(listeners|advertised.listeners)"正确配置应包含类似:
listeners=PLAINTEXT://:9092 advertised.listeners=PLAINTEXT://milvus-kafka-0.milvus-kafka-headless.milvus-database.svc.cluster.local:9092查看CoreDNS日志
检查集群CoreDNS的日志,确认DataNode的DNS请求是否被正确处理:kubectl logs -n kube-system -l k8s-app=kube-dns搜索目标域名的请求记录,排查是否有解析失败的错误日志。
内容的提问来源于stack exchange,提问作者rachel song

