[K3s] storage

Kubernetes emptyDir volumes worden samen met pod’s aangemaakt en zijn, zoals de naam zegt, leeg op het moment dat de pod gestart wordt. Een volume op de node zelf (hostPath of local) kan de data onafhankelijk van de pod ‘vast houden’.

K3s komt standaard met de Rancher’s Local Path Provisioner om ‘out-of-the-box’ PVC’s aan te kunnen maken met local storage op een node. Hiervoor wordt dan de StorageClasslocal-path‘ gebruikt. Het nadeel hiervan is dat als de node een probleem heeft, een pod niet langer actief blijft.

Om de data persistent te houden, kan gebruik gemaakt worden van NFS Storage Controller waarmee de NFS share op een NFS server staat en dus bewaard blijft indien een pod onverhoopt ge-redeployed wordt. Na de installatie hiervan is er een storageClassnfs-client‘ die gebruikt kan worden om PVC’s aan te maken.

Een alternatief is om gebruik te maken van Rancher’s Longhorn indien je platform daar krachtig genoeg voor is.

De installatie van Longhorn op een K3s cluster gaat alsvolgt:

$ kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml

en daarmee wordt de storageClasslonghorn‘ aangemaakt die gebruikt kan worden in een pvc manifest.