

 **Unterstützung für die Verbesserung dieser Seite beitragen** 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link **Diese Seite bearbeiten auf**, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Erstellen einer Speicherklasse
<a name="create-storage-class"></a>

Eine `StorageClass` im Amazon EKS Auto Mode definiert, wie Amazon-EBS-Volumes automatisch bereitgestellt werden, wenn Anwendungen persistenten Speicher anfordern. Auf dieser Seite wird erläutert, wie Sie eine `StorageClass` erstellen und konfigurieren, das mit dem Amazon EKS Auto Mode zusammenarbeitet, um EBS-Volumes bereitzustellen.

Durch die Konfiguration einer `StorageClass` können Sie Standardeinstellungen für Ihre EBS-Volumes festlegen, darunter Volume-Typ, Verschlüsselung, IOPS und andere Speicherparameter. Sie können den auch so konfigurieren`StorageClass`, dass AWS KMS-Schlüssel für die Verschlüsselungsverwaltung verwendet werden.

EKS Auto Mode erstellt keine `StorageClass` für Sie. Sie müssen eine `StorageClass`-Referenzierung `ebs.csi.eks.amazonaws.com` erstellen, um die Speicherfunktion von EKS Auto Mode zu nutzen.

Erstellen Sie zunächst eine Datei mit dem Namen `storage-class.yaml`:

```
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: auto-ebs-sc
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
allowedTopologies:
- matchLabelExpressions:
  - key: eks.amazonaws.com/compute-type
    values:
    - auto
provisioner: ebs.csi.eks.amazonaws.com
volumeBindingMode: WaitForFirstConsumer
parameters:
  type: gp3
  encrypted: "true"
```

Wenden Sie anschließend die Speicherklasse auf Ihren Cluster an.

```
kubectl apply -f storage-class.yaml
```

 **Zentrale Komponenten:** 
+  `provisioner: ebs.csi.eks.amazonaws.com` – Verwendet EKS Auto Mode
+  `allowedTopologies` – Durch die Angabe von `matchLabelExpressions` für die Übereinstimmung mit `eks.amazonaws.com/compute-type:auto` wird sichergestellt, dass Ihre Pods, die ein Volume benötigen, das automatisch im Automatikmodus bereitgestellt wird, nicht auf Nicht-Automatik-Knoten geplant werden.
+  `volumeBindingMode: WaitForFirstConsumer` – Verzögert die Volume-Erstellung, bis ein Pod sie benötigt
+  `type: gp3` – Gibt den EBS-Volume-Typ an
+  `encrypted: "true"` – EBS verschlüsselt alle Volumes, die mit `StorageClass` erstellt wurden. EBS verwendet den `aws/ebs`-Standard-Schlüssel-Alias. Weitere Informationen finden Sie unter [So funktioniert die Amazon-EBS-Verschlüsselung](https://docs.aws.amazon.com/ebs/latest/userguide/how-ebs-encryption-works.html) im Amazon-EBS-Benutzerhandbuch. Dieser Wert ist optional, wird jedoch empfohlen.
+  `storageclass.kubernetes.io/is-default-class: "true"` – Kubernetes verwendet standardmäßig diese Speicherklasse, sofern Sie nicht für einen persistenten Volume-Anspruch eine andere Volume-Klasse angeben. Dieser Wert ist optional. Seien Sie beim Festlegen dieses Werts vorsichtig, wenn Sie von einem anderen Speicher-Controller migrieren.

## Selbstverwalteter KMS-Schlüssel zur Verschlüsselung von EBS-Volumes verwenden
<a name="_use_self_managed_kms_key_to_encrypt_ebs_volumes"></a>

Um einen selbstverwalteten KMS-Schlüssel zur Verschlüsselung von EBS-Volumes zu verwenden, die durch EKS Auto Mode automatisiert werden, müssen Sie folgende Schritte ausführen:

1. Erstellen Sie einen selbstverwalteten KMS-Schlüssel.
   + Weitere Informationen finden Sie unter [Erstellen eines symmetrischen KMS-Verschlüsselungsschlüssels](https://docs.aws.amazon.com/kms/latest/developerguide/create-symmetric-cmk.html) oder [So verwendet Amazon Elastic Block Store (Amazon EBS) KMS](https://docs.aws.amazon.com/kms/latest/developerguide/services-ebs.html) im KMS-Benutzerhandbuch.

1. Erstellen Sie eine neue Richtlinie, die den Zugriff auf den KMS-Schlüssel zulässt.
   + Verwenden Sie die unten aufgeführte Beispiel-IAM-Richtlinie, um die Richtlinie zu erstellen. Geben Sie die ARN des neuen selbstverwalteten KMS-Schlüssels ein. Weitere Informationen finden Sie im AWS IAM-Benutzerhandbuch unter [Rollen erstellen und Richtlinien anhängen (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions_create-policies.html).

1. Fügen Sie die Richtlinie der EKS- Cluster-Rolle an.
   + Verwenden Sie die AWS Konsole, um den ARN der EKS-Clusterrolle zu finden. Die Rollen-Informationen sind im Abschnitt **Übersicht** einsehbar. Weitere Informationen finden Sie unter [Amazon-EKS-Cluster-IAM-Rolle](cluster-iam-role.md).

1. Aktualisieren Sie `StorageClass`, um auf die KMS-Schlüssel-ID im `parameters.kmsKeyId`-Feld zu verweisen.

### Beispiel für eine selbstverwaltete KMS-IAM-Richtlinie
<a name="_sample_self_managed_kms_iam_policy"></a>

Aktualisieren Sie die folgenden Werte in der unten aufgeführten Richtlinie:
+  `<account-id>`— Ihre AWS Konto-ID, z. B. `111122223333` 
+  `<aws-region>`— Die AWS Region Ihres Clusters, wie `us-west-2` 

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "key-auto-policy-3",
  "Statement": [
      {
          "Sid": "Enable IAM User Permissions",
          "Effect": "Allow",
          "Principal": {
              "AWS": "arn:aws:iam::123456789012:root"
          },
          "Action": "kms:*",
          "Resource": "*"
      },
      {
        "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
        "Effect": "Allow",
        "Principal": {
            "AWS": "*"
        },
        "Action": [
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:CreateGrant",
            "kms:DescribeKey"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "kms:CallerAccount": "123456789012",
                "kms:ViaService": "ec2.us-east-1.amazonaws.com"
            }
        }
    }
  ]
}
```

### Beispiel für ein selbstverwaltetes KMS `StorageClass`
<a name="_sample_self_managed_kms_storageclass"></a>

```
parameters:
  type: gp3
  encrypted: "true"
  kmsKeyId: <custom-key-arn>
```

## `StorageClass`-Parameter-Referenz
<a name="_storageclass_parameters_reference"></a>

Allgemeine Informationen zu den `StorageClass`-Kubernetes-Ressourcen finden Sie unter [Speicherklassen](https://kubernetes.io/docs/concepts/storage/storage-classes/) in der Kubernetes-Dokumentation

THe `parameters`Der Abschnitt der `StorageClass` Ressource ist spezifisch für AWS. Verwenden Sie die folgende Tabelle, um die verfügbaren Optionen zu überprüfen.


| Parameters | Werte | Standard | Description | 
| --- | --- | --- | --- | 
|  „csi.storage.k8s.io/fstype“  |  xfs, ext2, ext3, ext4  |  ext4  |  Dateisystemtyp, der während der Volume-Erstellung formatiert wird. Bei diesem Parameter wird zwischen Groß- und Kleinschreibung unterschieden\$1  | 
|  „type“  |  io1, io2, gp2, gp3, sc1, st1, standard, sbp1, sbg1  |  gp3  |  EBS-Volume-Typ.  | 
|  „iopsPerGB“  |  |  |  E/A-Vorgänge pro Sekunde pro GiB. Kann für IO1 IO2, und GP3 Volumen angegeben werden.  | 
|  „Automatisch zulassen IOPSPerGBIncrease“  |  true, false  |  false  |  Wenn `"true"` der CSI-Treiber die IOPS für ein Volume erhöht, wenn `iopsPerGB * <volume size>` es zu niedrig ist, um in den von unterstützten IOPS-Bereich zu passen. AWS Dadurch ist die dynamische Bereitstellung immer erfolgreich, selbst wenn der Benutzer eine zu geringe PVC-Kapazität oder einen zu geringen `iopsPerGB`-Wert angibt. Andererseits können zusätzliche Kosten entstehen, da solche Volumes höhere IOPS aufweisen als in `iopsPerGB` angefordert.  | 
|  „iops“  |  |  |  E/A-Vorgänge pro Sekunde. Kann für IO1, IO2 und GP3 Volumes angegeben werden.  | 
|  „throughput“  |  |  125  |  Durchsatz in MiB/s. Nur wirksam, wenn der Datenträgertyp gp3 angegeben ist.  | 
|  „verschlüsselt“  |  true, false  |  false  |  Ob das Volume verschlüsselt werden soll oder nicht. Gültige Werte sind „wahr“ oder „falsch“.  | 
|  „blockExpress“  |  true, false  |  false  |  Ermöglicht die Erstellung von io2-Block-Express-Volumes.  | 
|  "kmsKeyId"  |  |  |  Die vollständige ARN des Schlüssels, der bei der Verschlüsselung des Volumes verwendet werden soll. Wenn nicht angegeben, AWS wird der Standard-KMS-Schlüssel für die Region verwendet, in der sich das Volume befindet. Wenn dieser nicht geändert wird, handelt es sich um einen automatisch generierten Schlüssel mit dem Namen `/aws/ebs`.  | 
|  „blockSize“  |  |  |  Die Blockgröße, die beim Formatieren des zugrunde liegenden Dateisystems verwendet werden soll. Wird nur auf Linux-Knoten und mit fstype `ext2`, `ext3`, `ext4` oder `xfs` unterstützt.  | 
|  „inodeSize“  |  |  |  Die Inode-Größe, die beim Formatieren des zugrunde liegenden Dateisystems verwendet werden soll. Wird nur auf Linux-Knoten und mit fstype `ext2`, `ext3`, `ext4` oder `xfs` unterstützt.  | 
|  "bytesPerInode"  |  |  |  Die `bytes-per-inode`, die beim Formatieren des zugrunde liegenden Dateisystems verwendet werden sollen. Wird nur auf Linux-Knoten und mit fstype `ext2`, `ext3`, `ext4` unterstützt.  | 
|  "numberOfInodes"  |  |  |  Die `number-of-inodes`, die beim Formatieren des zugrunde liegenden Dateisystems verwendet werden sollen. Wird nur auf Linux-Knoten und mit fstype `ext2`, `ext3`, `ext4` unterstützt.  | 
|  „ext4BigAlloc“  |  true, false  |  false  |  Ändert das `ext4`-Dateisystem, um die gruppierte Block-Zuweisung zu verwenden, indem die `bigalloc`-Formatierungsoption aktiviert wird. Warnung: `bigalloc` wird möglicherweise nicht vollständig vom Linux-Kernel Ihres Knotens unterstützt.  | 
|  „ClusterSizeext4“  |  |  |  Die Cluster-Größe, die beim Formatieren eines `ext4`-Dateisystems verwendet werden soll, wenn das `bigalloc`-Feature aktiviert ist. Hinweis: Der Parameter `ext4BigAlloc` muss auf „wahr“ gesetzt sein.  | 

Weitere Informationen finden Sie unter dem [AWS EBS-CSI-Treiber unter](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/parameters.md). GitHub

## Überlegungen
<a name="_considerations"></a>

**Anmerkung**  
Sie können Workloads, die vom EKS-Automatikmodus abhängen, nur auf StorageClasses EKS-Automodus-Knoten bereitstellen. Wenn Sie über einen Cluster mit kombinierten Knotentypen verfügen, müssen Sie Ihre Workloads so konfigurieren, dass sie ausschließlich in EKS-Auto-Mode-Knoten ausgeführt werden. Weitere Informationen finden Sie unter [Überprüfen, ob eine Workload in Knoten von EKS Auto Mode bereitgestellt wird](associate-workload.md).

Die Blockspeicherfunktion des EKS Auto Mode unterscheidet sich vom EBS-CSI-Treiber.
+ Statische Bereitstellung
  + Wenn Sie extern erstellte EBS-Volumes mit dem automatischen EKS-Modus verwenden möchten, müssen Sie manuell ein AWS Tag mit dem Schlüssel `eks:eks-cluster-name` und dem Wert des Clusternamens hinzufügen.
+ Knoten-Startup-Taint
  + Es ist nicht möglich, das Node-Startup-Taint-Feature zu verwenden, um die Pod-Planung zu verhindern, bevor die Speicherkapazität bereit ist.
+ Benutzerdefinierte Tags auf dynamisch bereitgestellten Volumes
  + Sie können das CLI-Flag „extra-tag“ nicht verwenden, um benutzerdefinierte Tags für dynamisch bereitgestellte EBS-Volumes zu konfigurieren.
  + Sie können `StorageClass`-Kennzeichnung verwenden, um benutzerdefinierte Tags hinzuzufügen. Der automatische EKS-Modus fügt den zugehörigen Ressourcen Tags hinzu. AWS Sie müssen die Cluster-IAM-Rolle für benutzerdefinierte Tags aktualisieren. Weitere Informationen finden Sie unter [Benutzerdefinierte AWS Tags für EKS Auto-Ressourcen](auto-learn-iam.md#tag-prop).
+ Detaillierte EBS-Leistungsmetriken
  + Sie können nicht auf Prometheus-Metriken für die detaillierte EBS-Leistung zugreifen

## Add-On „CSI-Snapshot Controller“ installieren
<a name="_install_csi_snapshot_controller_add_on"></a>

EKS Auto Mode ist mit dem Amazon-EKS-Add-On „CSI Snapshot Controller“ kompatibel.

 AWS schlägt vor, dass Sie dieses Add-on so konfigurieren, dass es auf dem integrierten `system` Knotenpool ausgeführt wird.

 Weitere Informationen finden Sie unter:
+  [Kritische Add-Ons in dedizierten Instances ausführen](critical-workload.md) 
+  [Integriert aktivieren oder deaktivieren NodePools](set-builtin-node-pools.md) 
+  [Snapshot-Funktion für CSI-Volumes aktivieren](csi-snapshot-controller.md) 

### So installieren Sie den Snapshot-Controller im System-Knoten-Pool
<a name="auto-install-snapshot-controller"></a>

1. Öffnen Sie Ihren EKS-Cluster in der AWS Konsole

1. Wählen Sie auf der Registerkarte **Add-Ons** die Option **Weitere Add-Ons abrufen** 

1. Wählen Sie den **CSI Snapshot Controller** und dann **Weiter** 

1. Wählen Sie auf der Seite **Einstellungen für ausgewählte Add-Ons konfigurieren** die Option **Optionale Konfigurationseinstellungen** aus, um das **Add-On-Konfigurationsschema** anzuzeigen. 

   1. Fügen Sie das folgende YAML ein, um den Snapshot-Controller dem `system`-Knoten-Pool zuzuordnen. Der Snapshot-Controller enthält eine Toleranz für den `CriticalAddonsOnly`-Taint.

      ```
      {
              "nodeSelector": {
                  "karpenter.sh/nodepool": "system"
              }
      }
      ```

   1. Klicken Sie auf **Weiter** 

1. Überprüfen Sie die Add-On-Konfiguration und wählen Sie dann **Erstellen** aus 