Classi di archiviazione - Amazon EKS

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 nella documentazione Kubernetes.

Nota

Questo argomento utilizza lo strumento di provisioning di archiviazione Amazon EBS predefinito. Il plug-in Amazon EBS predefinito esistente continua a essere supportato, ma l'uso di un driver CSI permette di sfruttare tutti i vantaggi derivanti dal disaccoppiamento del ciclo di rilascio upstream di Kubernetes e del ciclo di rilascio del driver CSI. Alla fine, il funzionamento del plug-in predefinito verrà interrotto in favore del driver CSI. Tuttavia, il driver CSI non è supportato su Fargate.

Per creare una classe di archiviazione AWS per un cluster Amazon EKS

  1. 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.

  2. 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 denominata gp2 che utilizza il tipo di volume Amazon EBS gp2.

    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
  3. 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

  1. 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
  2. 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
  3. Verifica che la classe di archiviazione sia impostata come predefinita.

    kubectl get storageclass

    Output:

    gp2 (default) kubernetes.io/aws-ebs 12m