ubuntu18下的coredns踩坑
Contents
今天踩了个坑,记录一下
现象是容器不能连通外网,直觉检查网络连通性,发现curl百度失败,curl百度ip成功。
- 检查coredns配置,最近没有修改
- 联想到最近1个节点使用了ubuntu18
- 查看coredns刚好分配到该节点
- 检查改节点本身能连通外网,nslookup正常
- 定位原因是ubuntu18 的resolv规则变了,使用systemd-resolved管理,resolv.conf内容变成类似 nameserver 127.0.0.53,coredns规则是k8s外部查询继承宿主机的resolv.conf
当容器解析外部域名时,使用了127.0.0.53,容器内当然没有systemd-resolved负责后续工作了
解决方法是停用systemd-resolved,使用传统的写nameserver到resolv.conf方式。
另外ubuntu18使用systemd-resolved的好处不明确。