0Pricing
Kubernetes Basics · 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 Kubernetes Basics 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 Kubernetes Basics, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kubernetes Basics 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 Kubernetes Basics, przejdź na CoddyKit PRO. Kurs Kubernetes Basics 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 Kubernetes Basics 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ąć Kubernetes Basics?

Nie wymagamy żadnego doświadczenia. Kubernetes Basics 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 Kubernetes Basics?

Tak. Każda lekcja Kubernetes Basics 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 Kubernetes Basics