Czym są Storage Classes w Kubernetes?¶
Domyślnie, gdy chcemy uruchomić PV, które działa w oparciu o zasób dyskowy na Cloudzie (np. Google GCP) konieczne jest utworzenie zasobu dyskowego poprzez wydanie polecenia lub wyklikanie.
Następnie możliwe jest utworzenie już PV, przykładowy PV z użyciem Google Persistent Disk:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-gcp-01
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
gcePersistentDisk:
pdName: pd-disk-01
fsType: ext4
Aby zautomatyzować ten proces możemy utworzyć Storage Class. Jest to obiekt umożliwiający zautomatyzowane uruchamianie zasobów dyskowych zewnętrznych dostawców. Nie jest konieczne tworzenie PV przez administratora, utworzenie Storage Class automatycznie tworzy PV.
Konieczne jest utworzenie jedynie PVC i później zdefiniowanie tego w Podzie.
Storage Class mogą być przykładowo używane do rozdzielania zasobów pamięci masowej na klastrze - przykładowo zasób Brown, Silver, Gold, i określane konkretne zasoby w Cloud pod względem szybkości dysków, lub jako podział na inne regiony.
Definicja manifestu dla Storage Class¶
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: <storage-class_name>
provisioner: <csi_provisioner_name>