Wdrażanie, skalowanie i monitorowanie pamięci masowej w Kubernetes

Wprowadzenie do Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Woluminy trwałe i oświadczenia woluminów trwałych

Woluminy trwałe i oświadczenia woluminów trwałych

  • Podstawowe obiekty pamięci: Woluminy trwałe (PV), utrzymywane równolegle z podami
  • Woluminy PV są mapowane do podów za pomocą oświadczeń woluminów trwałych (PVC)
  • Zmapowany wolumin PV zapewnia trwałość danych przy zatrzymaniu, usunięciu lub restarcie poda
  • Woluminy PV umożliwiają rozdzielenie pamięci masowej od zasobów obliczeniowych
Wprowadzenie do Kubernetes

Klasy pamięci

Klasy pamięci

  • Woluminy PV: dostarczane
    • ręcznie przez administratora Kubernetes
    • dynamicznie przez zwykłego użytkownika
  • Dynamiczne dostarczanie odbywa się przez klasy pamięci (SC) bez interwencji człowieka
  • Klasy pamięci (SC):

    • definiowane przez administratora Kubernetes
    • różne typy (różne opóźnienia, np. SDD vs HDD, różne strategie tworzenia kopii zapasowych)
  • W razie wątpliwości, używaj klas pamięci ;-)

Wprowadzenie do Kubernetes

Wszystko razem

  • Pamięć masową obsługują tylko trzy obiekty:

    • PersistentVolume
    • PersistentVolumeClaim
    • StorageClass
  • Pod wymagający trwałości danych używa PersistentVolumeClaim

  • PVC powoduje, że Kubernetes tworzy PersistentVolume dla poda
  • Ten PersistentVolume jest mapowany do żądającego poda
  • Używana jest nazwana StorageClass, która definiuje parametry takie jak opóźnienie i strategia tworzenia kopii zapasowych woluminu PV
  • Ten PersistentVolume przetrwa (wraz z danymi), nawet gdy Pod zostanie zakończony
Wprowadzenie do Kubernetes

Fragmenty manifestów

Pod z woluminem trwałym

apiVersion: v1
kind: Pod
...

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

PersistentVolumeClaim z klasą pamięci

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

spec: storageClassName: "standard" accessModes: - ReadWriteOnce
resources: requests: storage: 5Gi
Wprowadzenie do Kubernetes

Polecenia `kubectl` dla pamięci masowej

  • kubectl oferuje pełny zestaw poleceń do tworzenia i monitorowania pamięci masowej Kubernetes
  • Przykłady:
    • kubectl get sc wyświetla wszystkie dostępne klasy pamięci
    • kubectl get pvc wyświetla wszystkie wdrożone oświadczenia PVC
    • kubectl get pv wyświetla wszystkie wdrożone woluminy PV
    • Jak zwykle, kubectl apply -f <manifest> służy do wdrażania zasobów pamięci zdefiniowanych w manifestach.
Wprowadzenie do Kubernetes

Czas na ćwiczenia!

Wprowadzenie do Kubernetes

Preparing Video For Download...