Persistent Volumes en Claims
Begrijp hoe u Pods van duurzame opslag voorziet met Persistent Volumes en Persistent Volume Claims.
Persistent Volumes en Claims is een gratis De basis van Kubernetes-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Kubernetes. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Kubernetes bevat in totaal 4 lessen.
Pods en vluchtige gegevens
Pods ontstaan en verdwijnen, maar de gegevens van je applicatie moeten vaak blijven bestaan. Denk bijvoorbeeld aan een database of bestanden die gebruikers hebben geüpload.
- Wanneer een Pod opnieuw wordt gestart of opnieuw wordt gepland, gaan alle gegevens die rechtstreeks in het bestandssysteem van de container zijn opgeslagen verloren.
- Dit vluchtige karakter is prima voor stateless applicaties, maar voor kritieke gegevens is een duurzame oplossing nodig.
- Kubernetes biedt een krachtig systeem voor het beheren van persistente opslag die de levenscyclus van Pods overleeft.
PersistentVolume: clusteropslag
Een PersistentVolume (PV) is een stuk opslag in je Kubernetes-cluster.
- Het is een clustergebonden resource, wat betekent dat deze niet bij een specifieke namespace hoort.
- PVs worden beschikbaar gesteld door een beheerder of dynamisch door een StorageClass.
- Ze verbergen de details van de onderliggende opslagtechnologie (bijvoorbeeld Google Persistent Disk, AWS EBS of een NFS-share).
Een PersistentVolume definiëren
PVs worden gedefinieerd met details zoals capaciteit, toegangsmodi en het opslagtype. Deze YAML beschrijft een PV met hostPath (voor lokaal testen) en 5 gigabyte opslag.
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-local-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: "/mnt/data"
Let op: hostPath is doorgaans bedoeld voor ontwikkeling op één node en wordt niet aanbevolen voor productie.
PersistentVolumeClaim: aanvraag van een Pod
Een PersistentVolumeClaim (PVC) is een aanvraag voor opslag door een gebruiker of applicatie binnen een specifieke namespace.
- Pods gebruiken PVs niet rechtstreeks; ze vragen opslag aan via een PVC.
- PVCs zijn gebonden aan een namespace en bevinden zich dus binnen een specifiek project of gebied van een team.
- Ze geven de gewenste grootte en toegangsmodi op en kunnen optioneel een opslagklasse specificeren.
PV en PVC: de koppelaars
Kubernetes koppelt een PVC automatisch aan een beschikbare PV via een proces dat binding wordt genoemd.
- Wanneer een PVC wordt gemaakt, zoekt Kubernetes naar een PV die aan de vereisten van de PVC voldoet (grootte, toegangsmodi en opslagklasse).
- Zodra een geschikte PV is gevonden, worden ze in een één-op-éénrelatie aan elkaar "gebonden".
- Deze binding zorgt ervoor dat de PVC precies de aangevraagde opslag krijgt.
Toegangsmodi voor PVs en PVCs
Toegangsmodi bepalen hoe de opslag door Pods kan worden gekoppeld en gebruikt. Deze modi worden aangevraagd door PVCs en ondersteund door PVs:
- ReadWriteOnce (RWO): Het volume kan door één node als lezen-schrijven worden gekoppeld.
- ReadOnlyMany (ROX): Het volume kan door meerdere nodes als alleen-lezen worden gekoppeld.
- ReadWriteMany (RWX): Het volume kan door meerdere nodes als lezen-schrijven worden gekoppeld.
Welke modi beschikbaar zijn, hangt af van de specifieke opslagprovider.
Opslagklassen voor automatisering
Storage Classes bieden beheerders een manier om verschillende "klassen" opslag te beschrijven (bijvoorbeeld "fast-ssd" en "slow-hdd").
- In plaats van PVs handmatig te maken, kan een StorageClass dynamisch een PV beschikbaar stellen wanneer een PVC daarom vraagt.
- Dit automatiseert het maken van PVs op basis van vooraf gedefinieerde sjablonen.
- Het scheidt het beschikbaar stellen van opslag van het gebruik ervan, wat het voor gebruikers eenvoudiger maakt.
Voorbeeld: een PVC maken
Laten we een PVC maken die 1 gigabyte opslag met ReadWriteOnce-toegang aanvraagt. Deze PVC zoekt naar een bestaande PV of activeert dynamische beschikbaarstelling via een StorageClass.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-app-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: standard # Optional: if you have a 'standard' StorageClass
Sla dit op als pvc.yaml en pas het toe met kubectl apply -f pvc.yaml.
Een PVC in een Pod gebruiken
Zodra een PVC is gebonden, kan een Pod deze gebruiken door in de volum configuratie naar de naam van de PVC te verwijzen. De Pod hoeft niets te weten over de onderliggende PV, alleen over de PVC.
apiVersion: v1
kind: Pod
metadata:
name: my-data-pod
spec:
containers:
- name: data-container
image: busybox
command: ["/bin/sh", "-c", "echo 'Hello from CoddyKit!' > /mnt/data/hello.txt && sleep 3600"]
volumeMounts:
- name: persistent-storage
mountPath: /mnt/data
volumes:
- name: persistent-storage
persistentVolumeClaim:
claimName: my-app-pvc
Deze Pod schrijft een bestand naar het gekoppelde persistente volume.
PVs en PVCs controleren
Je kunt de status van je resources voor persistente opslag controleren met kubectl:
- Alle PVs bekijken:
kubectl get pv - Alle PVCs in je namespace bekijken:
kubectl get pvc - Gedetailleerde informatie ophalen, inclusief status en gebeurtenissen:
kubectl describe pv <pv-name>kubectl describe pvc <pvc-name>
Zorg dat je PVs de status Bound hebben en dat PVCs aan de juiste PV zijn gekoppeld met de status Bound.
PV versus PVC begrijpen
Een gebruiker wil een database implementeren die 50 GB persistente opslag nodig heeft. Welke Kubernetes-resource vertegenwoordigt rechtstreeks de aanvraag voor deze opslag vanuit de applicatie van de gebruiker?
Samenvatting van persistente opslag
We hebben besproken hoe Kubernetes duurzame opslag voor je applicaties beheert:
- PersistentVolumes (PVs) zijn clusterresources die de daadwerkelijke opslag vertegenwoordigen.
- PersistentVolumeClaims (PVCs) zijn aanvragen van gebruikers voor opslag.
- Kubernetes koppelt PVCs op basis van vereisten aan geschikte PVs.
- Toegangsmodi bepalen hoe opslag kan worden gebruikt (RWO, ROX, RWX).
- Storage Classes maken dynamische beschikbaarstelling van PVs mogelijk en automatiseren de configuratie.
Dit systeem zorgt ervoor dat je applicatiegegevens behouden blijven, ook als Pods komen en gaan, en biedt betrouwbaarheid voor stateful applicaties.
Leer De basis van Kubernetes met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Persistent Volumes en Claims” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Kubernetes, waaronder “Persistent Volumes en Claims”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Kubernetes bevat in totaal 4 lessen.
Wat leer ik in “Persistent Volumes en Claims”?
Begrijp hoe u Pods van duurzame opslag voorziet met Persistent Volumes en Persistent Volume Claims. Je oefent met De basis van Kubernetes door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met De basis van Kubernetes te beginnen?
Ervaring vooraf is niet nodig. De basis van Kubernetes op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Persistent Volumes en Claims”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over De basis van Kubernetes?
Ja. Elke les over De basis van Kubernetes bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- ConfigMaps voor configuratie
- Secrets voor gevoelige gegevens
- Persistent Volumes en Claims
- StorageClasses en dynamische provisioning