coredns解析内网域名失败问题记录

问题现象:

公司内网域名解析失败: ping: rdfa-auth.uat.ennew.com: Name or service not known
image.png

处理办法:删除重建 coredns pod
kubectl delte po coredns-6f85d5fb88-2cgbv  coredns-6f85d5fb88-hnwt7  .... -nkube-system

处理过程:

  1. 复现pod 访问域名错误:
    image.png
  2. 测试主机是否能访问通域名
    image.png

    主机访问正常 证明问题无法解析域名的问题出在pod上

  3. 查看k8s集群网络组件和dns容器是否正常
    image.png

    网络和DNS一切正常

  4. 查看pod内dns地址
    image.png

    只有kube-dns 地址 且endpoint 的三个pod都是正常状态


    image.png

    kube-dns 的后端pod 状态也正常 如前图
    image.png
  5. 查看dns日志: kubectl logs coredns-6f85d5fb88-bn4p6 -nkube-system
[ERROR] plugin/errors: 2 apm-server-rest.uat.ennewi.cn. A: read udp 10.202.2.2:54366->100.125.129.250:53: i/o timeout
[ERROR] plugin/errors: 2 apm-server-rest.uat.ennewi.cn. A: read udp 10.202.2.2:44915->100.125.129.250:53: i/o timeout
[ERROR] plugin/errors: 2 apm-server-rest.uat.ennewi.cn. A: read udp 10.202.2.2:52744->100.125.129.250:53: i/o timeout
[ERROR] plugin/errors: 2 apm-server-rest.dev.ennewi.cn. A: read udp 10.202.2.2:50696->100.125.1.250:53: i/o timeout
[ERROR] plugin/errors: 2 nacos.uat.ennewi.cn. A: read udp 10.202.2.2:38828->100.125.1.250:53: i/o timeout
  1. 经查看得知
    10.202.2.2 为coredns地址
    100.125.1.250:53 地址不属于集群内 但是可以ping通,且53端口可以访问


    image.png

    100.125.1.250 也不是默认的内网dns地址


    image.png
  2. 百度得知 100.125.1.250:53 为华为内网dns地址 正好我们使用的也是华为云的主机


    image.png
  3. 问题来了 : 为什么pod使用的是华为云的内网dns地址 而不是主机resolv.conf定义dns地址的呢
    参考kubernetes关于coredns的文档可以知道, 不在 Kubernetes 集群域内的任何查询都将转发到 预定义的解析器 (/etc/resolv.conf).

    image.png

  4. 由上可知,k8s集群里肯定不会有公司内网的dns解析,那走的就会是主机的/etc/resolv.conf里指定的dns,但是主机使用这个里定义的dns是可以解析的


    image.png
  5. 难道问题出在/etc/resolv.conf 文件上? 开始验证
    /etc/resolv.conf 是4.8号修改的


    image.png

    查看pod 启动时间是43天前(今天是5月6号)

[root@pt-k8s-uat-master-0001 ~]# kubectl get po -nkube-system -owide|grep dns
coredns-6f85d5fb88-7c24l                   1/1     Running     0          43d   10.202.7.2     10.228.8.238   <none>           <none>
coredns-6f85d5fb88-bn4p6                   1/1     Running     0          43d   10.202.2.2     10.228.8.136   <none>           <none>
coredns-6f85d5fb88-sztbx                   1/1     Running     0          43d   10.202.4.2     10.228.8.175   <none>           <none>
coredns-autoscaler-79599b9dc6-jnbb8        1/1     Running     0          43d   10.202.3.2     10.228.8.178   <none>           <none>

推断: coredns 加载/etc/resolv.conf的是4月8号修改前的配置 也就是coredns 日志报错的100.125.1.250 地址

  1. 开始验证上面推断
    1. 尝试登录coredns 进行文件查看,结果无法登录
[root@pt-k8s-uat-master-0001 ~]# kubectl exec -it coredns-6f85d5fb88-7c24l  -nkube-system sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: \"sh\": executable file not found in $PATH": unknown
command terminated with exit code 126
  1. 删掉coredns pod 让其重新加载配置文件,以便读到正确的/etc/resolv.conf文件
# 看pod时间 已重启47m
[root@pt-k8s-uat-master-0001 ~]# kubectl get po -A|grep dns
kube-system           coredns-6f85d5fb88-2cgbv                   1/1     Running            0          47m
kube-system           coredns-6f85d5fb88-hnwt7                   1/1     Running            0          55m
kube-system           coredns-6f85d5fb88-lxqcn                   1/1     Running            0          47m
  1. 去pod里测试域名解析
[root@tenant-identify-api-769f9cd7f9-lwd6p ~]# ping rdfa-auth.uat.ennew.com 
PING rdfa-auth.uat.ennew.com (10.39.201.234) 56(84) bytes of data.
64 bytes from 10.39.201.234 (10.39.201.234): icmp_seq=1 ttl=57 time=1.85 ms
64 bytes from 10.39.201.234 (10.39.201.234): icmp_seq=2 ttl=57 time=1.82 ms
64 bytes from 10.39.201.234 (10.39.201.234): icmp_seq=3 ttl=57 time=1.81 ms
64 bytes from 10.39.201.234 (10.39.201.234): icmp_seq=4 ttl=57 time=1.76 ms
  1. 问题已解决
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容