Podman machine 的主要虚拟化驱动程序被称为“提供程序”。在 2024 年 4 月,我为 MacOS 添加了对 krun 作为提供程序的支持。我们对该添加的提及很少,因为我们还需要整理回归测试、测试环境和支持细节等项目。但随着我们接近完成这些项目,我们已准备好让 krun 支持从动物园中逃脱。
译自 Podman and Libkrun,作者 Brent Baude。
我们添加对 krun 支持的关键原因之一是它能够为 Mac 上的 Podman machine 提供 GPU 的直通支持。此功能使 MacOS 上的容器化 AI 工作负载变得现实,并显着扩展了开发人员的体验。
使用 libkrun 与 Podman machine 的基本步骤如下:
- 安装适当的软件(Podman 和 libkrun 组件)
- 配置 Podman 以使用 libkrun 提供程序。
- 创建并启动 Podman machine。
1. 注意事项
如果您想尝试 krun 和 podman machine,我建议您先执行 podman machine reset
。这不是必需的,并且具有破坏性,因为它会删除您所有现有的 Podman machine 以及您下载(和缓存)的任何机器映像。
2. 安装软件
截至撰写本文时,安装 Podman 和所需的 libkrun 组件主要有两种方法:通过 brew 或通过 Podman 安装程序和其他下载。
使用 Brew
(如果您没有 brew,请跳到下面的下一节)
本节假设您已经安装了 homebrew。如果您已经安装了 brew 和 podman(通过 brew),那么您可以直接跳到添加 krun 组件的步骤。我个人更喜欢下载软件并自行安装,但两种方法都可以获得相同的 Podman 用户体验。
安装 Podman
要在您的 Mac 上安装 Podman,请从终端提示符发出以下命令:
代码语言:javascript复制% brew install podman
==> Downloading https://formulae.brew.sh/api/formula.jws.json
#################################################################################################...
[ omitted for brevity ]
==> Running `brew cleanup podman`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
安装 krunkit
要使用 libkrun,您需要安装 krunkit。在 Podman 5.2 或更高版本中,它将捆绑到 Podman Mac 安装程序中。但目前,像这样安装它就足够了:
代码语言:javascript复制brentbaude@Mac-mini ~ % brew tap slp/krun
==> Tapping slp/krun
Cloning into '/opt/homebrew/Library/Taps/slp/homebrew-krun'...
remote: Enumerating objects: 291, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 291 (delta 22), reused 17 (delta 17), pack-reused 263
Receiving objects: 100% (291/291), 169.33 MiB | 3.79 MiB/s, done.
Resolving deltas: 100% (113/113), done.
Tapped 4 formulae (20 files, 195MB).
bbrentbaude@Mac-mini ~ % brew install krunkit
==> Downloading https://formulae.brew.sh/api/formula.jws.json
==> Downloading https://formulae.brew.sh/api/cask.jws.json
==> Fetching dependencies for slp/krunkit/krunkit: dtc, libepoxy, molten-vk, slp/krunkit/virglrenderer and slp/krunkit/libkrun-efi
[ omitted for brevity ]
==> Installing slp/krunkit/krunkit
==> Pouring krunkit-0.1.1.arm64_sonoma.bottle.tar.gz