最新版容器管理工具 Podman 对 podman machine
命令进行了完全重写,改善对 macOS 和 Windows 平台的虚拟化支持。此外,它还支持 manifest 文件中的 OCI artifacts,默认采用 Pasta 进行无根网络连接,改进了 containers.conf 配置文件。
Podman 的 machine 是启动 Linux 虚拟机的基本机制,是 macOS 和 Windows 系统运行 Linux 容器所必需的。因为有了新的实现,Podman 5 现在在 Mac 上使用 Apple Hypervisor,并弃用 QEMU。
通过重写,我们改进了性能和稳定性,显著增加了不同 VM 供应商之间的代码共享,使未来的维护和修复变得更加容易。我们还增加了对 Mac 上 Apple hypervisor 的支持,极大提升了 Mac 上的稳定性、启动速度和文件共享性能。
Podman 4 用户需要注意的是,已有的 Podman 4 machine 到 Podman 5 并没有直接的升级路径。正如 Redhat 软件工程师 Brent Baude 所解释的那样,“Podman 5 machine 的底层和操作系统改进让升级过程变得不同寻常”。
将 Podman 4 machine 移植到 Podman 5 取决于 machine 是否是临时性的以及是否易于重建。一般来说,第一步是备份所有运行容器中的数据,以便在删除后可以恢复它们的状态。对于临时容器,只需要运行新的 podman machine reset 命令。对于非临时的镜像和容器,可以将它们推送到注册表中,以便在升级后再次获取它们,或者可以使用 podman commit 或 podman save 获得相同的效果。
Podman 5 带来的另一个重大变化是将 Pasta 作为默认的无根网络后端,替换了 slirp4netns。无根网络与非特权(非 root)用户一起使用,解决无法在主机上创建网络接口的问题。RedHat 表示,从 slirp4nets 切换到 Pasta 并将设为默认的主要原因是因为性能。
最后要注意的是,Podman 5 的主要配置文件 containers.conf 变得更加健壮和灵活。
为了使其更加健壮,containers.conf 不再包含有关 podman 系统连接和 farm 的信息。使用旧的 podman system connection 命令添加连接或 farm 容易导致用户配置和注释被覆盖。为了防止这种情况发生,连接和 farm 信息现在存储在一个用户不可修改的单独文件中,即 podman-connections.json。
除此之外,containers.conf 还包含了新的配置字段,如 retry 和 retry_delay (用于指定推送 / 拉取镜像时的重试和暂停时间);firewall_driver(可以选择 iptables、nftables、firewalld 和无防火墙);设置了 device 值的 interface_name 可以在容器和宿主机上自动分配相同的值。
关于 Podman 5 还有很多其他内容,请不要错过发布说明 (https://github.com/containers/podman/releases/tag/v5.0.0) 中提供的完整信息。
查看英文原文:
https://www.infoq.com/news/2024/05/podman-5-released/
声明:本文为 InfoQ 翻译,未经许可禁止转载。
今日好文推荐谷歌裁掉整个 Python 团队!PyTorch 创始人急得直骂人:“WTF!核心语言团队无可替换”
德国再次拥抱Linux:数万系统从windows迁出,能否避开二十年前的“坑”?