Site icon Cloudlets

Dynamic storage provisioning met NFS op Kubernetes

Waarom dynamic storage provisioning?

Containers zijn in principe ephemeral. Dat betekent dat ze vervangbaar moeten kunnen zijn zonder dat je data verliest. Dat is echter niet in elk geval wenselijk. Om te voorkomen dat je data verloren gaat zodra je je container of pod herstart of upgrade, kan je gebruik maken van persistent volumes. Een persistent volume kan blijven bestaan bestaan op het moment dat je container vervangen wordt of stopt. In Kubernetes kan je handmatig een persistent volume aanmaken, maar dat is een relatief tijdrovend proces. Zeker als je voor meerdere deployments een persistent volume nodig hebt.

Door gebruik te maken van Dynamic Provisioning hoef je niet telkens handmatig een Persistent Volume met bijbehorende Persistent Volume Claim aan te maken. Dankzij Dynamic Provisioning worden de benodigde volumes vanzelf aangemaakt zodra je deployment daarom vraagt. In plaats van handmatig de Persistant Volumes aan te maken, maak je een StorageClass aan die het aanmaken van de Persistent Volume Claims afhandelt. In de deployments die je op je cluster wilt draaien, hoef je alleen nog maar aan te geven van welke StorageClass gebruik gemaakt moet worden. Hierdoor hoef je je niet iedere keer opnieuw bezig te houden met de storage provisioning. Bovendien biedt deze werkwijze je de optie om meerdere storagetypes eenvoudig naast elkaar te gebruiken, bijvoorbeeld high-perfomance SSD’s en wat goedkopere storage voor applicaties waarvoor snelheid minder van belang is.

NFS Storage aanmaken

In deze handleiding laten we je zien hoe je dynamic provisioning kunt activeren in combinatie met NFS Storage op het Cloud-platform van Cloudlets.

NFS storage koppelen aan het Kubernetes Cluster

StorageClass als standaard instellen

Geef je in je deployment niet aan welke StorageClass gebruikt moet worden? Dan valt Kubernetes terug op de StorageClass die je als default hebt aangemerkt. Maak je de StorageClass aan met de configuratie die je in bovenstaande stappen hebt gedownload? Dan zal de nieuwe NFS storage als default worden aangemerkt, tenzij er al een default StorageClass op het cluster aanwezig was. Als er meerdere StorageClasses als default zijn aangemerkt, dan zal Kubernetes geen van beide StorageClasses als default beschouwen. Twee commando’s die van belang zijn in dit kader: