Podman 开始弃用 CNI 插件

Podman 团队祝您新年快乐!今年将从一个变化开始。自 Podman 诞生以来,它一直使用 容器网络接口 (CNI) 插件 作为其核心网络堆栈。我们的用户开始推动我们扩展网络堆栈功能,以实现更高级的网络和域名服务。这些功能与上游 CNI 不一致,事实上,它们偏离了 CNI 的一些未来考虑。这促使我们设计并发布了我们自己的基于内部项目 netavarkaardvark-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。

5 个回复到“Podman 开始弃用 CNI 插件”

  1. Jeff Avatar

    我的 podman 版本是 4.2。
    安装了 netavark 和 aardvark-dns
    运行了 podman system reset
    它仍在使用 CNI 网络后端。

    1. Jeff Avatar

      仅供参考

      podman system info | grep Version
      buildahVersion: 1.27.3
      cgroupVersion: v1
      APIVersion: 4.2.0
      GoVersion: go1.18.4
      Version: 4.2.0

      podman system info | grep networkBackend
      networkBackend: cni

    2. Brent Baude Avatar

      我无法根据您提供的信息提供帮助。如果您想在 https://github.com/containers/podman/issues 上按照提供的模板提交问题,我们更有可能帮助您。

  2. Alexander Avatar

    可以不擦除所有东西就切换吗?我不喜欢重新创建我拥有的一切。

    1. Brent Baude Avatar

      不幸的是,您不能。但是,您可以愉快地使用 CNI,直到它 *真正* 被弃用。再说一次,这只是一个意向公告。

回复 Brent Baude取消回复

订阅

使用您的电子邮件地址注册,以便通过电子邮件从本网站接收更新。


类别


搜索