Kubernetes Failed to create pod sandbox: open /run/systemd/resolve/resolv.conf: no such file or d...

1.问题

Kubernetes Pod启动报错 Failed to create pod sandbox: open /run/systemd/resolve/resolv.conf: no such file or directory

2.问题原因

Failed to create pod sandbox: open /run/systemd/resolve/resolv.conf: no such file or directory
通常表示 Kubernetes 或容器运行时在尝试访问 DNS 配置文件时无法找到相应的目录或文件;
此错误通常与 systemd-resolved 服务的 DNS 解析功能相关

3.排查思路 & fix方案

1.检查 systemd-resolved 服务状态:

  #检查 systemd-resolved 服务是否正在运行:
   systemctl status systemd-resolved
  # 如果该服务未运行,可以尝试启动服务
  systemctl start systemd-resolved
  # 设置开机自启动(避免重启再次服务拉起异常)
  systemctl enable systemd-resolved

2.创建 symlink
手动创建 resolv.conf 的符号链接

  ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

3.重启 Docker/Kubelet:

  # 重启Docker
   systemctl restart docker
  # 重启 kubelet:
  systemctl restart kubelet

4.检查网络配置
确保你的网络配置是正确的。你可以查看 /etc/resolv.conf 中的 DNS 设置。

  cat /etc/resolv.conf 

5.使用静态 DNS
如果 systemd-resolved 有问题,可以考虑直接在 /etc/resolv.conf 中配置静态 DNS(比如 Google DNS)

   sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
   sudo bash -c 'echo "nameserver 8.8.4.4" >> /etc/resolv.conf'

7.检查系统日志:
查看系统日志获取更多错误信息

journalctl -xe
less /var/log/messages

8.重启主机
如果以上方法都无效,可以尝试重启主机

  reboot
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容