0Pricing
DevOps Bootcamp · Lekcja

StorageClass i dynamiczne udostępnianie zasobów

Poznaj sposób, w jaki StorageClass pozwala Kubernetes automatycznie udostępniać Persistent Volumes na żądanie, bez ręcznej pracy administratora.

StorageClass i dynamiczne udostępnianie zasobów to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Problem ręcznego zarządzania pamięcią masową

W przypadku statycznej aprowizacji administrator musi ręcznie utworzyć każdy PersistentVolume, zanim PersistentVolumeClaim będzie mógł zostać powiązany. To rozwiązanie nie skaluje się.

Dynamiczna aprowizacja automatycznie tworzy woluminy po utworzeniu żądania.

Czym jest StorageClass?

StorageClass opisuje rodzaj pamięci masowej, jaki klaster może udostępnić: którego provisionera użyć, jakie zastosować parametry i jak będą zachowywać się woluminy.

Można traktować go jako szablon tworzenia PersistentVolumes na żądanie.

Definicja StorageClass

Pole provisioner określa nazwę wtyczki tworzącej wolumin, często sterownika dysku chmurowego.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: fast-ssd
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp3
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

Żądanie dynamicznej pamięci masowej

Obiekt PVC po prostu odwołuje się do StorageClass według nazwy. Kubernetes automatycznie aprowizuje pasujący PV.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: data
spec:
  accessModes: ['ReadWriteOnce']
  storageClassName: fast-ssd
  resources:
    requests:
      storage: 10Gi

Domyślny StorageClass

Jeśli PVC nie określa storageClassName, Kubernetes używa domyślnego StorageClass klastra (oznaczonego adnotacją). Dzięki temu żądania działają od razu.

kubectl get storageclass
# NAME            PROVISIONER          DEFAULT
# standard (default)  ...

Zasada odzyskiwania

Pole reclaimPolicy określa, co stanie się po usunięciu PVC:

  • Delete: usunięty zostanie również bazowy wolumin
  • Retain: wolumin zostanie zachowany na potrzeby ręcznego odzyskania danych

Tryb wiązania woluminu

WaitForFirstConsumer opóźnia utworzenie woluminu do czasu zaplanowania Poda używającego PVC. Dzięki temu dysk znajdzie się w tej samej strefie co Pod.

Immediate aprowizuje wolumin od razu, co może spowodować niezgodność stref.

Obserwowanie aprowizacji

Po zastosowaniu PVC należy obserwować, jak jego status zmienia się z Pending na Bound podczas tworzenia woluminu.

kubectl apply -f pvc.yaml
kubectl get pvc data -w
# data   Pending
# data   Bound   pvc-8a3f...  10Gi

Wiele poziomów pamięci masowej

Klastry często definiują kilka obiektów StorageClass dla różnych potrzeb, pozwalając zespołom wybrać właściwy kompromis dla danego obciążenia.

# fast-ssd  -> low latency, higher cost
# standard  -> balanced default
# cold-hdd  -> cheap, archival

Rozszerzanie woluminów

Jeśli StorageClass ma ustawienie allowVolumeExpansion: true, można zwiększyć rozmiar PVC, edytując żądany rozmiar, a provisioner powiększy bazowy dysk.

spec:
  resources:
    requests:
      storage: 20Gi  # increased from 10Gi

Kiedy używać aprowizacji statycznej, a kiedy dynamicznej

  • Dynamiczna: domyślny wybór; samoobsługowa i dobrze skalowalna
  • Statyczna: gdy trzeba powiązać zasób z konkretnym, istniejącym dyskiem lub eksportem NFS

Szybki test

Należy sprawdzić zrozumienie dynamicznej aprowizacji.

Podsumowanie

Dowiedział się Pan, że StorageClass definiuje sposób tworzenia pamięci masowej, umożliwiając dynamiczną aprowizację. Najważniejsze pola to provisioner, reclaimPolicy i volumeBindingMode. Obiekty PVC odwołują się do klasy według nazwy, a domyślna klasa obsługuje żądania, w których jej nie określono.

Często zadawane pytania

Czy lekcja „StorageClass i dynamiczne udostępnianie zasobów” jest bezpłatna?

Tak — pełny tekst „StorageClass i dynamiczne udostępnianie zasobów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „StorageClass i dynamiczne udostępnianie zasobów”?

Poznaj sposób, w jaki StorageClass pozwala Kubernetes automatycznie udostępniać Persistent Volumes na żądanie, bez ręcznej pracy administratora. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „StorageClass i dynamiczne udostępnianie zasobów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. ConfigMaps do konfiguracji
  2. Secrets do poufnych danych
  3. Woluminy trwałe i żądania zasobów
  4. StorageClass i dynamiczne udostępnianie zasobów
← Powrót do DevOps Bootcamp