View a markdown version of this page

Amazon EC2 EC2-Instance-Speicher für Kubernetes-Volumenspeicher - Amazon EKS

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 throttling Parameter auf "true" (Standard) oder "false" in Ihrer StorageClass Definition.

  • PVC-Anmerkung — Stellen Sie die lis.csi.aws.com/throttling Anmerkung "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

"false"

Drosselung ist deaktiviert

"false"

"true"oder nicht gesetzt

Drosselung ist deaktiviert

"true"

"false"

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.