k8s pod内无法解析service域名
k8s集群内pod内无法解析service域名,导致无法访问其他应用问题排查
·
问题描述
pod内无法解析service域名,导致无法访问其他应用
原因分析:
可能原因:
- 3层网络故障
- dns服务解析异常。集群内pod 域名通过core-dns解析,集群外通过宿主机DNS解析。
排查步骤:
step1. 直接ping service对应clusterIP 正常。
step2. 检查core-dns pod 到对应service通信异常,endpoint所指地址与实际core-dns pod ip 不一致。
问题根因
core-dns pod 和service通信异常,导致其他pod域名解析失败
解决方法
删除service对应endpoint,重启core-dns恢复
知识拓展
pod域名解析是通过core-dns
pod 内resolv.conf对应的nameserver 就是core-dns service 的clusterIP
在Kubernetes中,域名的全称是 service-name.namespace.svc.cluster.local这种模式,当执行 curl b时,在容器内会根据/etc/resolv.conf进行解析流程,首先会选择100.64.0.2进行解析。用字符串"b"依次带入容器内/etc/reslov.conf中的search域进行DNS查找。当所有的解析都失败时,就会使用宿主机dns解析(一般是访问外网的时候)
更多推荐
已为社区贡献2条内容
所有评论(0)