De basis van Kubernetes · Les

Persistent Volumes en Claims

Begrijp hoe u Pods van duurzame opslag voorziet met Persistent Volumes en Persistent Volume Claims.

Les 3 van 412 stappen

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.

Gratis beginnen

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

  1. ConfigMaps voor configuratie
  2. Secrets voor gevoelige gegevens
  3. Persistent Volumes en Claims
  4. StorageClasses en dynamische provisioning
← Terug naar De basis van Kubernetes