当前位置: 首页 > docker, 网络, 虚拟化 > 正文

kubernetes 使用基于 alpine 镜像无法正常解析外网DNS

【摘要】部署k8s时遇到了一个现象,在 kubernetes 中使用基于 alpine 镜像,启动后的pods解析内部kube-dns的域名没问题,但是外网域名的DNS均无法解析,
pods中可以ping通ip地址,分析了大半天,在dns上tcpdump抓包,发现3次握手不成功,alpine到dns的53端口不通…

逐步排除问题,首先排除了nodes网络问题,多个namespace的问题,kubernetes部署方式的问题,使用其他镜像均能正常解析DNS,发现问题应该是出在alpine镜像本身,alpine-3.5/3.6/3.7都有这个问题。alpine 这个小系统确实过于精简了,下面是问题出现的一些提示:

使用kubectl手动启动 alpine 测试解析域名失败:

google之后有人提出要将/etc/resolv.conf中的ndots注释掉,于是在Dockerfile中的启动脚本中替换之。

这个命令pods运行起来后报错。

于是换个方式进行替换:

再次重新启动:

这样,alpine镜像里面终于可以解析了外网域名了。

本文固定链接: https://www.sudops.com/kubernetes-alpine-image-resolve-ext-dns.html | 运维·速度

该日志由 Fisher 于2018年05月08日发表在 docker, 网络, 虚拟化 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: kubernetes 使用基于 alpine 镜像无法正常解析外网DNS | 运维·速度
关键字: , ,

kubernetes 使用基于 alpine 镜像无法正常解析外网DNS:目前有2 条留言

  1. 板凳
    Fisher:

    哈哈,一起努力

    2020-07-09 10:41 [回复]
  2. 沙发
    kjstart:

    谢谢, 给我很多启发. 我发现coredns开启autopath插件也会导致这个问题, 去掉可以解决.

    2020-06-23 05:40 [回复]

发表评论


Time limit is exhausted. Please reload the CAPTCHA.

快捷键:Ctrl+Enter