podman 无根容器的自定义路由

podman 无根容器的自定义路由

我想将来自 Podman 容器的所有流量路由到指定的网关。我可以使用点击设备轻松实现这一点。但是,当在无根模式下运行 Podman 时,我可以看到容器内的 Tap 设备,但看不到主机上的设备(我将在主机上实现路由)。

有没有办法指定Podman流量到达主机的哪个接口?

此外,我想在每个容器的基础上执行此操作,这意味着每个容器都有不同的接口。在将多个容器分组到一个 Pod 内的情况下,我只想为该 Pod 执行一次此配置。

答案1

通常,非 root 用户无法在主机上创建接口。设备tap是连接到应用程序的虚拟设备 - 在 Podman 的情况下,该应用程序是slirp4netns,它被描述为这里

这就是说,没有“主机上的接口”——来自无根容器的流量流入slirp4netns,然后负责将流量转发到远程目的地。

已发布的端口由无根端口过程。

这与 Podman 运行时使用的配置非常不同root(在这种情况下,它使用veth接口将容器连接到主机桥,并使用 netfilter 规则来处理端口发布)。

如果您想设置自定义路由,您可能希望将 Podman 作为 运行root

相关内容