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