Storage
Storage dla usług uruchomionych w klastrze Oktawave Kubernetes Service
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
1
apiVersion: storage.k8s.io/v1
2
kind: StorageClass
3
metadata:
4
name: tier1
5
provisioner: csi.oktawave.com
6
parameters:
7
tier: "1"
8
fsType: ext4
9
reclaimPolicy: Delete
10
volumeBindingMode: WaitForFirstConsumer
Copied!
Konfigurujemy ją w klastrze komendą:
1
$ kubectl apply -f oks-storageclass.yaml
Copied!

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
1
apiVersion: v1
2
kind: PersistentVolumeClaim
3
metadata:
4
name: hello-mysql-pvc
5
labels:
6
app: hello-wordpress
7
spec:
8
storageClassName: tier1
9
accessModes:
10
- ReadWriteOnce
11
resources:
12
requests:
13
storage: 20Gi
Copied!
oks-wordpress-pvc.yaml
1
apiVersion: v1
2
kind: PersistentVolumeClaim
3
metadata:
4
name: hello-wordpress-pvc
5
labels:
6
app: hello-wordpress
7
spec:
8
storageClassName: tier1
9
accessModes:
10
- ReadWriteOnce
11
resources:
12
requests:
13
storage: 20Gi
Copied!
Tworzymy PersistentVolumeClaims z tych plików komendami:
1
$ kubectl apply -f oks-mysql-pvc.yaml
2
$ kubectl apply -f oks-wordpress-pvc.yaml
Copied!
Last modified 1yr ago