Rootless Podman跨Pod DNS解析问题:NPM无法通过Pod名访问Node-red
解决Podman跨Pod DNS解析问题(OpenSUSE Leap Micro 4.4.4)
针对你在OpenSUSE Leap Micro上Podman 4.4.4中,同一自定义网络下Pod无法通过名称解析的问题,可按以下步骤排查修复:
1. 确认自定义网络的DNS启用状态
首先检查public网络是否开启了DNS功能:
podman network inspect public | grep -i dns_enabled
如果输出不是"dns_enabled": true,则删除现有网络并重新创建(创建时显式启用DNS):
podman network rm public podman network create --dns-enable=true public
2. 为Pod添加DNS别名
Podman默认会将Pod名称作为DNS别名,但部分环境下可能需要手动指定。重新创建Pod2时添加--dns-alias参数:
podman pod rm pod2 podman pod create --name pod2 --network public --dns-alias pod2 # 重新启动Node-red容器 podman run -d --pod pod2 --name my-node-red nodered/node-red:latest
3. 验证容器的DNS配置
进入NPM容器,检查DNS服务器是否指向Podman内置DNS:
podman exec -it nom cat /etc/resolv.conf
正常情况下,nameserver应该是自定义网络的网关IP(比如10.88.x.x),如果是外部DNS(如8.8.8.8),说明容器未使用Podman的DNS服务,需检查网络配置。
4. 测试DNS解析
在NPM容器内直接测试对pod2的解析:
podman exec -it nom nslookup pod2
如果能返回Pod2的IP,说明解析正常;若仍失败,尝试用容器名my-node-red测试,排查是否是Pod别名的问题。
5. 重启Podman服务
若以上步骤无效,重启Podman服务刷新网络配置:
- 若为rootful模式:
systemctl restart podman
- 若为rootless模式:
systemctl --user restart podman
内容的提问来源于stack exchange,提问作者Khanetor
相关产品推荐
相关产品推荐

