Contents

今天踩了个坑,记录一下
现象是容器不能连通外网,直觉检查网络连通性,发现curl百度失败,curl百度ip成功。

  1. 检查coredns配置,最近没有修改
  2. 联想到最近1个节点使用了ubuntu18
  3. 查看coredns刚好分配到该节点
  4. 检查改节点本身能连通外网,nslookup正常
  5. 定位原因是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的好处不明确。

Contents