Speicherklassen - Amazon EKS

Speicherklassen

Amazon EKS-Cluster, die vor Kubernetes-Version 1.11 erstellt wurden, wurden ohne Speicherklassen erstellt. Sie müssen Speicherklassen für den Cluster definieren. Außerdem sollten Sie eine Standardspeicherklasse für Ihre persistenten Volume-Ansprüche festlegen. Weitere Informationen finden Sie unter Storage Classes in der Kubernetes-Dokumentation.

Anmerkung

In diesem Thema wird der in-tree Amazon EBS-Speicher-Provisioner verwendet. Das vorhandene in-tree Amazon EBS-Plugin wird weiterhin unterstützt, aber durch die Verwendung eines CSI-Treibers profitieren Sie von der Entkopplung des Upstream-Release-Zyklus von Kubernetes und des CSI-Treiberfreigabezyklus. Schließlich wird das In-Tree-Plugin zugunsten des CSI-Treibers als veraltet eingestuft.

So erstellen Sie eine AWS-Speicherklasse für Ihren Amazon EKS-Cluster

  1. Bestimmen Sie, welche Speicherklassen Ihr Cluster bereits hat.

    kubectl get storageclass

    Ausgabe

    NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE gp2 (default) kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 34m

    Wenn Ihr Cluster die vorherige Ausgabe zurückgibt, ist bereits die Speicherklasse in den verbleibenden Schritten definiert. Sie können andere Speicherklassen definieren, indem Sie die Schritte zum Bereitstellen eines CSI-Treibers imStorageKapitel. Nach der Bereitstellung können Sie eine der Speicherklassen alsdefaultSpeicherklasse

  2. Erstellen Sie eine AWS-Speicherklassen-Manifestdatei für Ihre Speicherklasse. Im folgenden gp2-storage-class.yaml-Beispiel wird eine Speicherklasse namens gp2 definiert, die den Volumentyp Amazon EBS gp2 verwendet.

    Weitere Informationen zu den verfügbaren Optionen für AWS-Speicherklassen finden Sie unter AWSAWS EBS in der Kubernetes-Dokumentation.

    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. Verwenden Sie kubectl, um die Speicherklasse aus der Manifestdatei zu erstellen.

    kubectl create -f gp2-storage-class.yaml

    Ausgabe:

    storageclass "gp2" created

So definieren Sie eine Standardspeicherklasse

  1. Listen Sie die vorhandenen Speicherklassen für Ihren Cluster auf. Eine Speicherklasse muss zunächst definiert werden, bevor Sie sie zur Standardspeicherklasse machen können.

    kubectl get storageclass

    Ausgabe:

    NAME PROVISIONER AGE gp2 kubernetes.io/aws-ebs 8m
  2. Wählen Sie eine Speicherklasse aus und legen Sie die storageclass.kubernetes.io/is-default-class=true-Anmerkung fest, um sie zur Standardspeicherklasse zu machen.

    kubectl annotate storageclass gp2 storageclass.kubernetes.io/is-default-class=true

    Ausgabe:

    storageclass "gp2" patched
  3. Überprüfen Sie, ob die Speicherklasse jetzt als Standardspeicherklasse festgelegt ist.

    kubectl get storageclass

    Ausgabe:

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