In this section, you’ll learn how to install Longhorn on a K3s Kubernetes cluster. K3s is a fully compliant Kubernetes distribution that is easy to install, using half the memory, all in a binary of less than 50mb.
open-iscsi
oriscsiadm
installed on the node.
Longhorn v0.7.0 and above support k3s v0.10.0 and above only by default.
If you want to deploy these new Longhorn versions on versions before k3s v0.10.0, you need to set --kubelet-root-dir
to <data-dir>/agent/kubelet
for the Deployment longhorn-driver-deployer
in longhorn/deploy/longhorn.yaml
. data-dir
is a arg and it can be set when you launch a k3s server. By default it is /var/lib/rancher/k3s
.
Failed to get arg root-dir: Cannot get kubelet root dir, no related proc for root-dir detection …
This error is due to Longhorn cannot detect where is the root dir setup for Kubelet, so the CSI plugin installation failed.
How to find root-dir
?
For K3S prior to v0.10.0
Run ps aux | grep k3s
and get argument --data-dir
or -d
on k3s node.
e.g.
You will find data-dir
in the cmdline of proc . By default it is not set and /var/lib/rancher/k3s
will be used. Then joining data-dir
with /agent/kubelet
you will get the root-dir
. So the default root-dir
for K3S is /var/lib/rancher/k3s/agent/kubelet
.
For K3S v0.10.0+
It is always
Longhorn versions before v0.7.0 don’t work on K3S v0.10.0 or above
K3S now sets its kubelet directory to /var/lib/kubelet
. See for details.