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.
Amazon EC2 EC2-Instance-Speicher für Kubernetes-Volumenspeicher
Der Amazon EC2 Instance Store CSI-Treiber ist ein Container Storage Interface (CSI) -Plugin, das es Kubernetes ermöglicht, EC2-Instance-Speicher-Volumes zu verwenden. Instance-Speicher-Volumes bieten kurzlebigen Speicher auf Blockebene, der physisch an den Host-Computer angeschlossen ist. Der Treiber verwaltet den Lebenszyklus dieser NVMe-Speichervolumes und stellt sie als persistente Kubernetes-Volumes zur Verfügung.
Der Amazon EC2 Instance Store CSI-Treiber interagiert mit Backend-NVMe-Geräten über lokale Linux-Operationen. Es sind keine AWS API-Aufrufe erforderlich, sodass keine IAM-Rolle erforderlich ist.
Überlegungen
Wichtig
Der Amazon EC2 Instance Store CSI-Treiber löscht während der Installation alle Daten auf temporären Festplatten. Wenn ein anderer CSI-Treiber oder ein Volume-Verwaltungssystem (wie LVM, Raw-Dateisysteme, LUKS usw.) kurzlebige Festplatten verwaltet, sichern Sie Ihre Daten, bevor Sie den Amazon EC2 Instance Store CSI-Treiber installieren, um Datenverlust zu vermeiden.
-
Der Amazon EC2 Instance Store CSI-Treiber funktioniert nicht mit dem EKS-Automatikmodus.
-
Sie können Amazon EC2 EC2-Instance-Speicher-Volumes nicht auf Fargate Pods mounten.
-
Der Amazon EC2 Instance Store CSI-Treiber ist für die folgenden Instance-Typen nicht verfügbar: C1, C3, C4, C5d, C5ad, C6GD, D2, D3, D3en, DL1, E3, Edge1GD, F1, G2, G3, G3, G4ad, G4dn, H1, HSM1, I2, I3,, I3en, M1, M2, M3, M4, M5d, M5ad, M5dn, M6gd, P2, P3, P3dn I3.metal, P4d, P4de, R3, R4, R5d, R5ad, R5dn, R6gd, T1, T2, X1, X1e, X2gd und Z1d.
-
Support wird für die neueste Add-On-Version und eine frühere Version bereitgestellt. Korrekturen für Fehler oder Sicherheitslücken, die in der neuesten Version gefunden wurden, werden als neue Nebenversion auf die vorherige Version zurückportiert.
-
Instanzspeicher ist kurzlebig. Daten gehen verloren, wenn der Knoten beendet wird. Implementieren Sie Replikation oder Backups auf Anwendungsebene für kritische Daten.
-
Die Volumenerweiterung wird nicht unterstützt.
-
I/O Die Drosselung ist standardmäßig für alle Volumes aktiviert, um eine faire Verteilung der Bandbreite zwischen den Workloads zu gewährleisten. Weitere Informationen finden Sie unter I/O Drosselung.
-
Bei neu gestarteten Instanzen wurden die Befehlsantworten von NVMe Identify im Vergleich zu älteren Instanzen desselben Typs aktualisiert. Wenn Ihre Tools von bestimmten NVMe-Identifizierungswerten abhängen, überprüfen Sie Ihre Logik auf Kompatibilität. Weitere Informationen finden Sie unter NVMe-Namespace-Änderungen auf neu gestarteten Instanzen.
Voraussetzungen
Stellen Sie vor dem Beginn sicher, dass Sie über das Folgende verfügen:
-
Ein vorhandener Amazon-EKS-Cluster. Führen Sie den folgenden AWS CLI-Befehl aus, um alle verfügbaren Versionen des Add-ons anzuzeigen:
aws eks describe-addon-versions --addon-name aws-ec2-local-instance-store-csi-driver
Installation des Amazon EC2 Instance Store CSI-Treibers
Der Amazon EC2 Instance Store CSI-Treiber ist als Amazon EKS-Add-on verfügbar. Durch die Installation des Treibers kann Ihr Cluster Instance-Speicher-Volumes als Pod-Speicher verwenden.
Um den Treiber zu installieren, fügen Sie Ihrem Cluster das Amazon EC2 Instance Store CSI-Treiber-Add-on hinzu. Anweisungen finden Sie unter Erstellen eines Amazon EKS-Add-ons. Weitere Informationen zu EKS-Add-Ons finden Sie unter Amazon EKS-Add-Ons.
Bereitstellen einer Beispielanwendung
Nach der Installation des Treibers können Sie Beispielanwendungen bereitstellen, um zu überprüfen, ob die Instance-Speicher-Volumes mit Ihrem Cluster ordnungsgemäß funktionieren. Sie können eine Vielzahl von Beispiel-Apps bereitstellen und diese nach Bedarf ändern.
I/O Drosselung
Der Amazon EC2 Instance Store CSI-Treiber beinhaltet eine integrierte I/O Drosselung, um eine faire Bandbreitenverteilung zwischen Workloads auf demselben NVMe-Controller sicherzustellen. Die Drosselung ist standardmäßig für alle Volumes aktiviert, sodass verhindert wird, dass eine einzelne Arbeitslast unverhältnismäßig viel I/O Bandbreite auf Kosten anderer Workloads auf demselben Knoten verbraucht.
Drosselung konfigurieren
Sie können die Drosselung auf zwei Ebenen konfigurieren:
-
StorageClass Parameter — Setzen Sie den
throttlingParameter auf"true"(Standard) oder"false"in Ihrer StorageClass Definition. -
PVC-Anmerkung — Stellen Sie die
lis.csi.aws.com/throttlingAnmerkung"false"auf"true"oder auf eine einzelne Person ein PersistentVolumeClaims. Dadurch wird die StorageClass Einstellung außer Kraft gesetzt, sofern sie vorhanden ist.
Die folgende Tabelle zeigt, wie der StorageClass Parameter und die PVC-Anmerkung interagieren:
| PVC-Anmerkung | StorageClass Parameter | Ergebnis |
|---|---|---|
|
Nicht gesetzt |
Nicht gesetzt |
Drosselung aktiviert (Standard) |
|
Nicht gesetzt |
|
Drosselung ist deaktiviert |
|
|
|
Drosselung ist deaktiviert |
|
|
|
Drosselung aktiviert |
Einen ungedrosselten erstellen StorageClass
Um die Drosselung für alle Volumes in einem zu deaktivieren: StorageClass
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ec2-instance-store-unthrottled provisioner: lis.csi.aws.com parameters: throttling: "false" volumeBindingMode: WaitForFirstConsumer
Deaktivierung der Drosselung für ein einzelnes PVC
So deaktivieren Sie die Drosselung auf einem einzelnen PVC, während Sie einen gedrosselten PC verwenden: StorageClass
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: high-perf-pvc annotations: lis.csi.aws.com/throttling: "false" spec: accessModes: - ReadWriteOnce storageClassName: ec2-instance-store-sc resources: requests: storage: 100Gi
Überlegungen zur Drosselung
-
Die Drosselung ist standardmäßig aktiviert, um eine vorhersehbare Leistung für alle Workloads zu gewährleisten, die sich einen NVMe-Controller teilen.
-
Wenn die Drosselung für ein Volume deaktiviert wird, kann dieses mehr I/O Bandbreite verbrauchen, was sich auf die Leistung anderer gedrosselter Volumes auf demselben Controller auswirken kann.
-
Erwägen Sie, Workloads ohne Drosselung auf dedizierten Knoten zu isolieren.
-
Bei RAID-0 Volumes, die sich über mehrere Controller erstrecken, wird die Drosselung auf alle Mitgliedspartitionen angewendet.
-
Der Drosselungsstatus bleibt auch nach einem Knotenneustart bestehen.
NVMe-Namespace-Änderungen auf neu gestarteten Instanzen
Bei neu gestarteten EC2-Instances mit lokalem Instanzspeicher wurden die Befehlsantworten NVMe Identify Controller und Identify Namespace aktualisiert. Diese Änderungen unterstützen die NVMe-Namespace-Verwaltung auf dem lokalen EC2-Instanzspeicher. Bestehende laufende Instances sind nicht betroffen, und die Werte bleiben während des gesamten Lebenszyklus einer Instance stabil.
Aktualisierte Feldwerte
Die folgenden Felder haben sich bei neu gestarteten Instances im Vergleich zu älteren Instances desselben Typs geändert:
Identifizieren Sie den Controller (nvme id-ctrl)
-
Bit 3 von OACS: von 0 auf 1 geändert
-
Bit 8 von OAES: von 0 auf 1 geändert
-
NN: wurde von 1 auf einen Wert <= 256 geändert
-
TNVMCAP: wurde von 0 auf die tatsächliche Größe des lokalen Speichers geändert
Identifizieren Sie den Namespace () nvme id-ns
-
NVMCAP: wurde von 0 auf die tatsächliche Größe des lokalen Speichers geändert
-
NGUID: Von allen Nullen zu einer gültigen NGUID geändert
Alle aktualisierten Werte entsprechen der NVMe-Spezifikation.
Umfang der Änderungen
Diese Änderungen gelten ausschließlich für den lokalen EC2-Instance-Speicher. Amazon EBS-Volumes sind nicht betroffen. Führen Sie den folgenden Befehl aus, um zwischen EBS-Volumes und lokalem Instance-Speicher zu unterscheiden:
sudo nvme list
In der Konsolenausgabe:
-
Amazon Elastic Block Store= EBS-Volume -
Amazon EC2 NVMe Instance Storage= lokaler Instanzspeicher
NVMe-Identifikationswerte werden abgerufen
Um diese Werte abzufragen mit: nvme-cli
# Identify Controller sudo nvme id-ctrl /dev/nvme1 # Identify Namespace sudo nvme id-ns /dev/nvme1n1
Maßnahme erforderlich
Es ist keine Aktion erforderlich. Diese Änderungen sind abwärtskompatibel und folgen der NVMe-Spezifikation. Wenn Ihre Anwendung oder Ihr Tool jedoch bestimmte Werte von NVMe Identify-Befehlen validiert oder von diesen abhängt, überprüfen Sie Ihre Logik, um sicherzustellen, dass sie mit den aktualisierten Werten auf neu gestarteten Instances kompatibel ist.