Classi di archiviazione
I cluster Amazon EKS creati prima di Kubernetes versione 1.11 non sono stati creati con classi di archiviazione. Devi definire le classi di archiviazione da utilizzare per il cluster e una classe di archiviazione di default per le richieste di volumi persistenti. Per ulteriori informazioni, consultare Classi di archiviazione
Questo argomento utilizza lo strumento di provisioning di archiviazione Amazon EBS predefinito
Per creare una classe di archiviazione AWS per un cluster Amazon EKS
-
Determinare quali classi di archiviazione sono già disponibili nel cluster.
kubectl get storageclass
Output
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE gp2 (default) kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 34m
Se il cluster restituisce l'output precedente, la classe di archiviazione è già definita anche nei passaggi rimanenti. Nel capitolo di riferimento a Archiviazione, è possibile capire come definire altre classi di archiviazione utilizzando la procedura per l'implementazione di uno qualsiasi dei driver CSI. Una volta implementata, è possibile impostare una delle classi di archiviazione come di default.
-
Crea un file manifesto della classe di archiviazione AWS per la classe di archiviazione. L'esempio
gp2-storage-class.yaml
qui di seguito definisce una classe di archiviazione denominatagp2
che utilizza il tipo di volume Amazon EBSgp2
.Per ulteriori informazioni sulle opzioni disponibili per le classi di archiviazione AWS, consultare AWS EBS
nella documentazione Kubernetes. kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: gp2 annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: kubernetes.io/aws-ebs parameters: type: gp2 fsType: ext4
-
Utilizzare
kubectl
per creare la classe di archiviazione dal file manifesto.kubectl create -f gp2-storage-class.yaml
Output:
storageclass "gp2" created
Per definire una classe di archiviazione predefinita
-
Elenca le classi di archiviazione esistenti per il tuo cluster. Deve essere definita una classe di archiviazione prima di poterla impostare come predefinita.
kubectl get storageclass
Output:
NAME PROVISIONER AGE gp2 kubernetes.io/aws-ebs 8m
-
Scegli una classe di archiviazione e impostala come predefinita configurando l'annotazione
storageclass.kubernetes.io/is-default-class=true
.kubectl annotate storageclass gp2 storageclass.kubernetes.io/is-default-class=true
Output:
storageclass "gp2" patched
-
Verifica che la classe di archiviazione sia impostata come predefinita.
kubectl get storageclass
Output:
gp2 (default) kubernetes.io/aws-ebs 12m