Kubernetes-opslag: deployen, schalen en monitoren

Introductie tot Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Persistent Volumes en Persistent Volume Claims

Persistente volumes en Persistent Volume Claims

  • Basisobjecten voor opslag: Persistent Volumes (PV), beheerd naast Pods
  • PV’s koppel je aan Pods via Persistent Volume Claims (PVC)
  • Een gekoppelde PV behoudt data als de Pod stopt, crasht of herstart
  • PV’s scheiden storage en compute
Introductie tot Kubernetes

StorageClasses

StorageClasses

  • PV’s: provisioned
    • handmatig door een Kubernetes-admin
    • dynamisch door een gewone gebruiker
  • Dynamische provisioning verloopt via StorageClasses (SC) zonder handmatige actie
  • StorageClasses (SC):

    • gedefinieerd door de Kubernetes-admin
    • verschillende types (andere latency, bv. SSD vs. HDD, andere backupstrategieën)
  • Twijfel je? Gebruik StorageClasses.

Introductie tot Kubernetes

Alles samenbrengen

  • Er zijn drie objecten nodig voor opslag:

    • PersistentVolume
    • PersistentVolumeClaim
    • StorageClass
  • Een Pod die persistente data nodig heeft, gebruikt een PersistentVolumeClaim

  • Deze PVC laat Kubernetes een PersistentVolume voor de Pod maken
  • Dit PersistentVolume wordt aan de claimende Pod gekoppeld
  • Een genoemde StorageClass bepaalt details zoals latency en back-upstrategie van de PV
  • Dit PersistentVolume blijft bestaan (met data), ook als de Pod stopt
Introductie tot Kubernetes

Manifest-snippets

Pod met PersistentVolume

apiVersion: v1
kind: Pod
...

spec: containers: ... volumeMounts: - name: pv-mydata mountPath: /mydata
volumes: - name: pv-mydata persistentVolumeClaim: claimName: datacamp-pvc

PersistentVolumeClaim met StorageClass

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: datacamp-pvc

spec: storageClassName: "standard" accessModes: - ReadWriteOnce
resources: requests: storage: 5Gi
Introductie tot Kubernetes

"kubectl"-commando’s voor opslag

  • kubectl biedt alle commando’s om Kubernetes-opslag te maken en te monitoren
  • Voorbeelden:
    • kubectl get sc toont alle StorageClasses
    • kubectl get pvc toont alle gedeployde PersistentVolumeClaims
    • kubectl get pv toont alle gedeployde PersistentVolumes
    • Zoals gewoonlijk kun je met kubectl apply -f <manifest> storage-resources uit manifests deployen.
Introductie tot Kubernetes

Laten we oefenen!

Introductie tot Kubernetes

Preparing Video For Download...