MicroK8s环境下Pod无法通过DNS域名访问外网但IP访问正常的问题求助
MicroK8s环境下Pod无法通过DNS域名访问外网但IP访问正常的问题求助
大家好,我刚接触Kubernetes,学了大概几周时间,目前用的是MicroK8s默认安装,只启用了dns和metallb这两个插件,还跑了一个装了curl的Alpine Pod用来做测试。
目前大部分功能都正常:部署、节点状态没问题,同命名空间和跨命名空间的Pod之间通信也都正常。但遇到一个头疼的问题——Pod里没法通过DNS域名访问外网,具体现象如下:
- 用域名访问时直接失败:
curl google.com -> curl: (7) Failed to connect to google.com port 80 after 14 ms: Couldn't connect to server - 但直接用IP访问就完全正常:
curl 142.250.184.78 -> OK
更奇怪的是ping命令的表现:用域名ping的时候,解析出来的是127.0.0.1:
ping google.com -> 64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.030 ms
而直接pingIP就正常返回外网节点的响应:
ping 142.250.184.78 -> 64 bytes from 142.250.184.78: seq=0 ttl=114 time=8.997 ms
我自己试着去查Calico相关的配置,但实在摸不着头绪,有没有大佬能给点方向或者解决方案?万分感谢!
我的环境信息:
- 硬件:家用网络里的一台Ubuntu 22.04.1专用机器
- Kubernetes:默认安装的MicroK8s,仅启用
dns、metallb插件 - 测试容器:装有curl包的Alpine镜像
备注:内容来源于stack exchange,提问作者Hero Kato
相关产品推荐
相关产品推荐

