longhorn/docs/csi-config.md
Sheng Yang 78334f19f1
Update csi-config.md
Remove the support and mention of RancherOS and CoreOS.

Signed-off-by: Sheng Yang <sheng.yang@rancher.com>
2020-03-02 10:32:45 -08:00

2.5 KiB

Longhorn CSI on K3S

Requirements

  1. Kubernetes v1.11 or higher.
  2. Longhorn v0.4.1 or higher.

Instruction

K3S:

1. For Longhorn v0.7.0 and above

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 k3s arg and it can be set when you launch a k3s server. By default it is /var/lib/rancher/k3s.

2. For Longhorn before v0.7.0

Longhorn versions before v0.7.0 support k3s below v0.10.0 only by default.

If you want to deploy these older Longhorn versions on k3s v0.10.0 and above, you need to set --kubelet-root-dir to /var/lib/kubelet for the Deployment longhorn-driver-deployer in longhorn/deploy/longhorn.yaml

Troubleshooting

Common issues

This error is due to Longhorn cannot detect where is the root dir setup for Kubelet, so the CSI plugin installation failed.

User can override the root-dir detection by manually setting argument kubelet-root-dir here: https://github.com/rancher/longhorn/blob/master/deploy/longhorn.yaml#L329

For K3S v0.10.0-

Run ps aux | grep k3s and get argument --data-dir or -d on k3s server node.

e.g.

$ ps uax | grep k3s
root      4160  0.0  0.0  51420  3948 pts/0    S+   00:55   0:00 sudo /usr/local/bin/k3s server --data-dir /opt/test/k3s/data/dir
root      4161 49.0  4.0 259204 164292 pts/0   Sl+  00:55   0:04 /usr/local/bin/k3s server --data-dir /opt/test/k3s/data/dir

You will find data-dir in the cmdline of proc k3s. 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.

If K3S is using a configuration file, you would need to check the configuration file to locate the data-dir parameter.

For K3S v0.10.0+

It is always /var/lib/kubelet

Background

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 the K3S release comment for details.

Reference

https://github.com/kubernetes-csi/driver-registrar