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 测试解析域名失败:

# kubectl run appine-test -i -t --image=alpine:3.6 -- sh
If you don't see a command prompt, try pressing enter.
/ #
/ # ping sudops.com
ping: bad address 'sudops.com'

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

sed -i 's/options ndots:5/#options ndots:5/g' /etc/resolv.conf

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

sed: can't move '/etc/resolv.confMdACPl' to '/etc/resolv.conf': Resource busy

于是换个方式进行替换:

echo "$(sed 's/options ndots:5/#options ndots:5/g' /etc/resolv.conf)" > /etc/resolv.conf

再次重新启动:





# kubectl exec appine-test-6486s -n devopsnameserver -it -- /bin/bash
bash-4.3# cat /etc/issue
Welcome to Alpine Linux 3.6
Kernel \r on an \m (\l)

bash-4.3# uname -a
Linux kyphptest-6486s 3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 Linux
bash-4.3#
bash-4.3#

bash-4.3#
bash-4.3# cat /etc/resolv.conf
nameserver 10.254.0.2
search devns.svc.cluster.local. svc.cluster.local. cluster.local. sudops.com
#options ndots:5

再次ping
# kubectl exec kyphptest-6486s -n devns -it -- /bin/bash
bash-4.3# ping sudops.com
PING sudops.com (123.125.115.110): 56 data bytes
64 bytes from 123.125.115.110: seq=0 ttl=51 time=2.987 ms
64 bytes from 123.125.115.110: seq=1 ttl=51 time=2.010 ms
64 bytes from 123.125.115.110: seq=2 ttl=51 time=1.924 ms
^C
--- baidu.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.924/2.307/2.987 ms

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

u2

Related Posts

rancher v2.x 初体验

rancher v2x

Docker下如何导入导出neo4j数据

[摘要] 运行在Docker容器中的neo4j数据库,如何使…

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

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

评论已关闭。

You Missed

雇佣AI员工,花钱上班:开发者的新”职场”荒诞剧

  • u2
  • 3月 1, 2026
  • 31 views
雇佣AI员工,花钱上班:开发者的新”职场”荒诞剧

OpenClaw 完整使用指南:自托管 AI Agent 的架构与实战

  • u2
  • 2月 25, 2026
  • 135 views
OpenClaw 完整使用指南:自托管 AI Agent 的架构与实战

Anthropic 推出 Claude Code Security:AI 驱动的代码安全神器

  • u2
  • 2月 24, 2026
  • 78 views

来自 OWASP 的代码安全检查工具:Dependency-Check,为你消除安全隐患

  • u2
  • 10月 16, 2025
  • 48 views
来自 OWASP 的代码安全检查工具:Dependency-Check,为你消除安全隐患

技术宅如何躲开越来越垃圾的CSDN?

  • u2
  • 4月 11, 2024
  • 35 views
技术宅如何躲开越来越垃圾的CSDN?

mysql连接失败:The driver has not received any packets from the server

  • u2
  • 3月 26, 2024
  • 38 views
mysql连接失败:The driver has not received any packets from the server