krunkit

Overview

krunkit is an open-source program for macOS virtualization, optimized for GPU accelerated virtual machines and AI workloads.

Requirements

  • Available only on Apple silicon.
  • Requires macOS 14 or later.
  • Requires minikube version 1.37.0 or later.
  • Requires krunkit version 1.0.0 or later.
  • Requires vmnet-helper.

Installing krunkit

To install krunkit run:

brew tap libkrun/krun
brew trust libkrun/krun # trust the tap only required if using Homebrew 6.0 or later
brew install krunkit

Networking

To use the krunkit driver you must install vmnet-helper, see installation instructions below.

Install vmnet-helper

On macOS 26 or later, install vmnet-helper using Homebrew:

brew tap nirs/vmnet-helper
brew trust nirs/vmnet-helper
brew install vmnet-helper

On macOS 15 or earlier, install the latest version using the install script:

curl -fsSL https://github.com/minikube-machine/vmnet-helper/releases/latest/download/install.sh | bash

The command downloads the latest release from GitHub and installs it to /opt/vmnet-helper, and configures a sudoers rule to allow running vmnet-helper without a password.

Grant permission to run vmnet-helper manually on macOS 15 or earlier

On macOS 15 or earlier, vmnet-helper must run as root to create a vmnet interface. To let users in the staff group run it without a password, install the default sudoers rule. The install script offers to add this automatically; if you declined, run the command below manually:

sudo install -m 0640 /opt/vmnet-helper/share/doc/vmnet-helper/sudoers.d/vmnet-helper /etc/sudoers.d/

You can change the sudoers configuration to allow access to specific users or other groups.

IMPORTANT: On macOS 15 or earlier, the vmnet-helper executable and the directory where it is installed must be owned by root and may not be modifiable by unprivileged users.

Usage

minikube start --driver krunkit

Vmnet offloading

The --vmnet-offloading flag enables vmnet checksum and TSO offloading, which can improve host network throughput by up to 5x (e.g. pulling images from a local registry, RBD mirroring):

minikube start --driver krunkit --vmnet-offloading

Limitations

  • All VMs connected to the same vmnet bridge must enable offloading. If any VM on the bridge does not use offloading, the bridge disables TSO and TX performance drops significantly.
  • Pod-to-VM network RX performance is severely degraded when offloading is enabled, making it almost unusable. Pod-to-host network works well and is faster than without offloading.

Issues

Other

Troubleshooting

Run with logs

Run minikube start --driver krunkit --alsologtostderr -v=7 to debug crashes

Troubleshooting vmnet-helper

Check for errors in vmnet-helper log:

$MINIKUBE_HOME/.minikube/machines/MACHINE-NAME/vmnet-helper.log

Check that the vmnet-helper process is running:

ps au | grep vmnet-helper | grep -v grep

If the helper is not running restart the minikube cluster.

For help with vmnet-helper please use the discussions.