# Storage
Usługa Persistent Volumes pozwala na przypisywanie do podów trwałej pamięci blokowej (OVS).
# Storage Class
Aby móc tworzyć PersistentVolume i PersistentVolumeClaim, najpierw potrzebna jest definicja Storage Class.
Storage Class definiuje konfigurację dla tworzonych dysków oraz sposób ich obsługi przez Kubernetesa.
oks-storageclass.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: tier1
provisioner: csi.oktawave.com
parameters:
tier: "1"
fsType: ext4
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
Konfigurujemy ją w klastrze komendą:
$ kubectl apply -f oks-storageclass.yaml
# Konfiguracja Storage Class
- parameters
- tier - Tier dysku od 1 do 5. Możliwe wartości: "1", "2", "3", "4", "5"
- fsType - Filesystem dysku. Obecnie wspieramy systemy ext2, ext3 i ext4.
- reclaimPolicy - Definiuje czy dysk jest usuwany po usunięciu PVC z nim powiązanego. Przyjmuje wartości: Delete - Dysk jest usuwany razem z PVC; Retain - Dysk jest zachowywany
- volumeBindingMode - Definiuje kiedy dysk jest tworzony podczas zakładania PVC. WaitForFirstConsumer - Rekomendowane. Dysk jest tworzony w momencie przypięcia PVC do danego noda, co gwarantuje utworzenie go we właściwym subregionie. Immediate - dysk jest tworzony w losowym subregionie i może nie zadziałać w połączeniu z nodem z innego subregionu
# Persistent Volume Claim
Persistent Volume Claim służy do przypisywania pamięci dostępnej dla Poda. PVC wymaga podania zdefiniowanej wcześniej klasy pamięci (StorageClass), która określa parametry podmontowywanego zasobu dyskowego.
We wcześniej zdefiniowanych podach MySQLa i Wordpressa podaliśmy nazwy PersistentVolumeClaim. Teraz je utworzymy następującymi plikami konfiguracyjnymi:
oks-mysql-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: hello-mysql-pvc
labels:
app: hello-wordpress
spec:
storageClassName: tier1
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
oks-wordpress-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: hello-wordpress-pvc
labels:
app: hello-wordpress
spec:
storageClassName: tier1
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
Tworzymy PersistentVolumeClaims z tych plików komendami:
$ kubectl apply -f oks-mysql-pvc.yaml
$ kubectl apply -f oks-wordpress-pvc.yaml
← Load Balancer Billing →