Podman 团队祝大家新年快乐!今年将从一次改变开始。自 Podman 诞生以来,它一直使用 容器网络接口 (CNI) 插件 作为其核心网络栈。我们的用户开始推动我们扩展网络栈能力,以实现更高级的网络和域名服务。这些能力与上游 CNI 不符,实际上与他们未来的一些考虑有所背离。这促使我们基于内部项目 netavark 和 aardvark-dns 设计并发布了自己的网络栈。
新网络栈的两个部分都已超过一年,并自 2022 年 1 月起得到支持。我们对用户反馈感到满意,并一直在努力消除 CNI 和 netavark 之间的任何功能差距。唯一尚未完成的场景是支持 DHCP 的 MACVLAN。您可以在其 GitHub 项目 页面跟踪其进展。在不久的将来,Podman 将添加一项弃用公告。
从弃用公告发布到实际弃用之间,我们将留出很长一段时间。在这种情况下,“弃用”意味着代码的实际移除(或使用构建标签不编译它)。因此,Linux 发行版对实际弃用何时在其特定情况下开始拥有最终决定权。例如,Fedora 要求我们不要在活跃发布期间进行实际移除;因此,弃用将与新的 Fedora 发布同时进行。RHEL 也是如此。
我如何知道我正在使用 CNI 还是 Netavark?
如果您正在使用 Podman 3.X,则您正在使用 CNI,因为 Netavark 的支持已添加到 Podman 4。如果您正在使用 Podman 4,您可以运行 podman info
进行检查。
$ sudo podman info
host:
arch: amd64
buildahVersion: 1.29.0-dev
...
memFree: 16088698880
memTotal: 33380950016
networkBackend: netavark
ociRuntime:
name: crun
package: crun-1.7.2-3.fc37.x86_64
...
如何切换到 Netavark?
如果您发现自己仍在使用 CNI 栈,切换相对容易,尽管会对容器、镜像和网络造成破坏;所有这些都将被移除。切换的第一步是确保您已安装 netavark 和 aardvark-dns。这两个软件包的发行版支持情况有所不同。要从 CNI 切换到 netavark,您可以使用 podman system reset
命令。
podman system reset
podman system reset
命令是一个破坏性命令。它会重置所有容器、容器镜像和网络。在运行此命令之前,请确保您可以承受这些数据的丢失。
完成后,Podman 将自动开始使用 netavark。
回复给 Alexander取消回复