Running kind with Rootless Docker
Starting with kind 0.11.0, Rootless Docker and Rootless Podman can be used as the node provider of kind.
Provider requirements
- Docker: 20.10 or later
- Podman: 3.0 or later
Host requirements
The host needs to be running with cgroup v2.
cgroup v2 is enabled by default on Fedora. On other distros, cgroup v2 can be typically enabled by adding GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=1"
to /etc/default/grub
and running sudo update-grub
.
Also, depending on the host configuration, the following steps might be needed:
- Create
/etc/systemd/system/user@.service.d/delegate.conf
with the following content, and then runsudo systemctl daemon-reload
:
[Service]
Delegate=yes
- Create
/etc/modules-load.d/iptables.conf
with the following content:
iptable_nat
ip6table_nat
Restrictions
The restrictions of Rootless Docker apply to kind clusters as well.
e.g.
- OverlayFS cannot be used unless the host is using kernel >= 5.11, or Ubuntu/Debian kernel
- Cannot mount block storages
- Cannot mount NFS
Creating a kind cluster with Rootless Docker
To create a kind cluster with Rootless Docker, just run:
$ export DOCKER_HOST=unix://${XDG_RUNTIME_DIR}/docker.sock
$ kind create cluster
To create a kind cluster with Rootless Podman, just run:
$ KIND_EXPERIMENTAL_PROVIDER=podman kind create cluster
Tips
- To enable OOM watching, allow
dmesg
by runningsysctl -w kernel.dmesg_restrict=0
.