Implementarea, scalarea și monitorizarea stocării Kubernetes

Introducere în Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Persistent Volumes și Persistent Volume Claims

Persistent Volumes și Persistent Volume Claims

  • Obiecte fundamentale pentru stocare: Persistent Volumes (PV), menținute în paralel cu Pod-urile
  • PV-urile sunt asociate cu Pod-urile prin Persistent Volume Claims (PVC)
  • Un PV asociat permite persistența datelor când Pod-ul este oprit, eliminat sau repornit
  • PV-urile permit separarea stocării de calcul
Introducere în Kubernetes

Storage Classes

Storage Classes

  • PV-urile pot fi provisionate:
    • manual de un administrator Kubernetes
    • dinamic de un utilizator obișnuit
  • Provizionarea dinamică se realizează prin Storage Classes (SC) fără intervenție umană
  • Storage Classes (SC):
    • definite de administratorul Kubernetes
    • tipuri diferite (latență diferită, ex. SSD vs HDD, strategii de backup diferite)
  • În caz de îndoială, utilizați Storage Classes ;-)
Introducere în Kubernetes

Totul împreună

  • Există doar trei obiecte care asigură funcționarea stocării:

    • PersistentVolume
    • PersistentVolumeClaim
    • StorageClass
  • Un Pod care necesită date persistente utilizează un PersistentVolumeClaim

  • Acest PVC determină Kubernetes să creeze un PersistentVolume pentru Pod
  • Acest PersistentVolume este asociat cu Pod-ul solicitant
  • Se utilizează un StorageClass denumit, care definește detalii precum latența și strategia de backup a PV-ului
  • Acest PersistentVolume supraviețuiește (împreună cu datele stocate), chiar și când Pod-ul este terminat
Introducere în Kubernetes

Fragmente de Manifest

Pod cu PersistentVolume

apiVersion: v1
kind: Pod
...

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

PersistentVolumeClaim cu StorageClass

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

spec: storageClassName: "standard" accessModes: - ReadWriteOnce
resources: requests: storage: 5Gi
Introducere în Kubernetes

Comenzi `kubectl` pentru stocare

  • kubectl oferă un set complet de comenzi pentru crearea și monitorizarea stocării Kubernetes
  • Exemple:
    • kubectl get sc listează toate clasele de stocare disponibile
    • kubectl get pvc listează toate Persistent Volume Claims implementate
    • kubectl get pv listează toate Persistent Volumes implementate
    • Ca de obicei, kubectl apply -f <manifest> poate fi utilizat pentru a implementa resurse de stocare declarate în Manifeste.
Introducere în Kubernetes

Să exersăm!

Introducere în Kubernetes

Preparing Video For Download...