Speichern Sie leistungsstarke Apps mit FSx for Lustre - Amazon EKS

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.

Speichern Sie leistungsstarke Apps mit FSx for Lustre

Der FSxfor Lustre Container Storage Interface (CSI) -Treiber bietet eine CSI Schnittstelle, über die EKS Amazon-Cluster den Lebenszyklus von FSx For Lustre-Dateisystemen verwalten können. Weitere Informationen finden Sie im FSxfor Lustre-Benutzerhandbuch.

In diesem Thema erfahren Sie, wie Sie den FSx for CSI Lustre-Treiber in Ihrem EKS Amazon-Cluster bereitstellen und überprüfen, ob er funktioniert. Wir empfehlen die neueste Version des Treibers zu verwenden. Die verfügbaren Versionen finden Sie in der CSISpezifikations-Kompatibilitätsmatrix unter GitHub.

Anmerkung

Der Treiber wird auf Fargate nicht unterstützt.

Eine ausführliche Beschreibung der verfügbaren Parameter und vollständige Beispiele, die die Funktionen des Treibers demonstrieren, finden Sie im FSxTreiberprojekt for Lustre Container Storage Interface (CSI) unter GitHub.

Sie müssen über Folgendes verfügen:

  • Version 2.12.3 oder höher oder Version 1.27.160 oder höher der AWS Befehlszeilenschnittstelle (AWS CLI), die auf Ihrem Gerät installiert und konfiguriert ist, oder AWS CloudShell. Um Ihre aktuelle Version zu überprüfen, verwenden Sie aws --version | cut -d / -f2 | cut -d ' ' -f1. Paketmanager wieyum,apt-get, oder Homebrew for macOS liegen oft mehrere Versionen hinter der neuesten Version von AWS CLI. Informationen zur Installation der neuesten Version finden Sie unter Installation und Schnellkonfiguration mit aws configure im Benutzerhandbuch für die AWS Befehlszeilenschnittstelle. Die AWS CLI Version, in der installiert ist, AWS CloudShell kann auch mehrere Versionen hinter der neuesten Version liegen. Informationen zur Aktualisierung finden Sie unter Installation AWS CLI in Ihrem Home-Verzeichnis im AWS CloudShell Benutzerhandbuch.

  • Version 0.194.0 oder höher des auf Ihrem Gerät installierten eksctl Befehlszeilentools oder AWS CloudShell. Informationen zum Installieren und Aktualisieren von eksctl finden Sie in der Dokumentation zu eksctl unter Installation.

  • Das kubectl Befehlszeilentool ist auf Ihrem Gerät installiert oder AWS CloudShell. Die Version kann dieselbe oder bis zu einer Nebenversion sein, die vor oder nach der Kubernetes Version Ihres Clusters. Wenn Ihre Clusterversion beispielsweise 1.29 ist, können Sie kubectl-Version 1.28, 1.29, oder 1.30 damit verwenden. Informationen zum Installieren oder Aktualisieren von kubectl finden Sie unter Richten Sie kubectl und eksctl ein.

Die folgenden Verfahren helfen Ihnen dabei, einen einfachen Testcluster mit dem FSx for CSI Lustre-Treiber zu erstellen, damit Sie sehen können, wie er funktioniert. Es wird nicht empfohlen, den Testcluster für Produktionsworkloads zu verwenden. Für dieses Tutorial empfehlen wir die Verwendung von example values, außer dort, wo es vermerkt ist, dass sie ersetzt werden sollen. Sie können jeden ersetzen example value wenn Sie die Schritte für Ihren Produktionscluster abschließen. Wir empfehlen, alle Schritte in demselben Terminal auszuführen, da Variablen während der gesamten Schritte festgelegt und verwendet werden und nicht in verschiedenen Terminals existieren.

  1. Legen Sie einige Variablen fest, die in den verbleibenden Schritten verwendet werden sollen. Ersetzen my-csi-fsx-cluster mit dem Namen des Testclusters, den Sie erstellen möchten, und region-code mit der AWS Region, in der Sie Ihren Testcluster erstellen möchten.

    export cluster_name=my-csi-fsx-cluster export region_code=region-code
  2. Erstellen Sie einen Testcluster.

    eksctl create cluster \ --name $cluster_name \ --region $region_code \ --with-oidc \ --ssh-access \ --ssh-public-key my-key

    Die Clusterbereitstellung dauert mehrere Minuten. Während der Clustererstellung werden Sie mehrere Ausgabezeilen sehen. Die letzte Ausgabezeile ähnelt der folgenden Beispielzeile.

    [✓] EKS cluster "my-csi-fsx-cluster" in "region-code" region is ready
  3. Erstellen Sie ein Kubernetes Dienstkonto für den Treiber und fügen Sie dem Dienstkonto mit dem folgenden Befehl die AmazonFSxFullAccess AWS-managed Policy hinzu. Wenn sich Ihr Cluster in den AWS Regionen AWS GovCloud (USA-Ost) oder AWS GovCloud (US-West) befindet, ersetzen Sie ihn durch. arn:aws: arn:aws-us-gov:

    eksctl create iamserviceaccount \ --name fsx-csi-controller-sa \ --namespace kube-system \ --cluster $cluster_name \ --attach-policy-arn arn:aws: iam::aws:policy/AmazonFSxFullAccess \ --approve \ --role-name AmazonEKSFSxLustreCSIDriverFullAccess \ --region $region_code

    Während der Erstellung des Dienstkontos werden mehrere Ausgabezeilen angezeigt. Die letzten Ausgabezeilen ähneln den folgenden.

    [ℹ] 1 task: { 2 sequential sub-tasks: { create IAM role for serviceaccount "kube-system/fsx-csi-controller-sa", create serviceaccount "kube-system/fsx-csi-controller-sa", } } [ℹ] building iamserviceaccount stack "eksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa" [ℹ] deploying stack "eksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa" [ℹ] waiting for CloudFormation stack "eksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa" [ℹ] created serviceaccount "kube-system/fsx-csi-controller-sa"

    Notieren Sie sich den Namen des AWS CloudFormation Stacks, der bereitgestellt wurde. In der vorigen Beispielausgabe lautet der Name des Stacks eksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa.

  4. Stellen Sie den Treiber mit dem folgenden Befehl bereit. Ersetzen release-X.XX mit Ihrer gewünschten Filiale. Der Master-Zweig wird nicht unterstützt, da er möglicherweise zukünftige Funktionen enthält, die mit der aktuell veröffentlichten stabilen Version des Treibers nicht kompatibel sind. Wir empfehlen die Verwendung der neuesten veröffentlichten Version. Eine Liste der Branches finden Sie unter aws-fsx-csi-driver Branches on GitHub.

    Anmerkung

    Sie können den Inhalt, der angewendet wird, unter aws-fsx-csi-driver/deploy/kubernetes/overlays/stableam ansehen GitHub.

    kubectl apply -k "github.com/kubernetes-sigs/aws-fsx-csi-driver/deploy/kubernetes/overlays/stable/?ref=release-X.XX"

    Eine Beispielausgabe sieht wie folgt aus.

    serviceaccount/fsx-csi-controller-sa created serviceaccount/fsx-csi-node-sa created clusterrole.rbac.authorization.k8s.io/fsx-csi-external-provisioner-role created clusterrole.rbac.authorization.k8s.io/fsx-external-resizer-role created clusterrolebinding.rbac.authorization.k8s.io/fsx-csi-external-provisioner-binding created clusterrolebinding.rbac.authorization.k8s.io/fsx-csi-resizer-binding created deployment.apps/fsx-csi-controller created daemonset.apps/fsx-csi-node created csidriver.storage.k8s.io/fsx.csi.aws.com created
  5. Beachten Sie den ARN für die Rolle, die erstellt wurde. Wenn Sie es vorher nicht notiert haben und es in der AWS CLI Ausgabe nicht mehr verfügbar ist, können Sie wie folgt vorgehen, um es in der zu sehen AWS Management Console.

    1. Öffne die AWS CloudFormation Konsole.

    2. Stellen Sie sicher, dass die Konsole auf die AWS Region eingestellt ist, in der Sie Ihre IAM Rolle erstellt haben, und wählen Sie dann Stacks aus.

    3. Wählen Sie den Stack mit dem Namen eksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa aus.

    4. Wählen Sie die Registerkarte Ausgaben aus. Die Role1 ARN ist auf der Seite Outputs (1) aufgeführt.

  6. Patchen Sie die Treiberbereitstellung, um das zuvor erstellte Servicekonto mit dem folgenden Befehl hinzuzufügen. Ersetzen Sie das ARN durch dasARN, was Sie notiert haben. Ersetzen 111122223333 mit Ihrer Konto-ID. Wenn sich Ihr Cluster in den AWS Regionen AWS GovCloud (USA-Ost) oder AWS GovCloud (US-West) befindet, ersetzen Sie ihn durch arn:aws: . arn:aws-us-gov:

    kubectl annotate serviceaccount -n kube-system fsx-csi-controller-sa \ eks.amazonaws.com/role-arn=arn:aws: iam::111122223333:role/AmazonEKSFSxLustreCSIDriverFullAccess --overwrite=true

    Eine Beispielausgabe sieht wie folgt aus.

    serviceaccount/fsx-csi-controller-sa annotated

Bei diesem Verfahren wird der FSxfor Lustre Container Storage Interface () -Treiber verwendet CSI GitHub Repository, um ein dynamisch bereitgestelltes FSx Volume für Lustre zu nutzen.

  1. Beachten Sie die Sicherheitsgruppe für Ihren Cluster. Sie finden es im Bereich Netzwerk oder mit AWS Management Console dem folgenden Befehl. AWS CLI

    aws eks describe-cluster --name $cluster_name --query cluster.resourcesVpcConfig.clusterSecurityGroupId
  2. Erstellen Sie eine Sicherheitsgruppe für Ihr FSx Amazon-Dateisystem gemäß den Kriterien, die im Amazon FSx for Lustre-Benutzerhandbuch unter Amazon VPC Security Groups aufgeführt sind. Wählen Sie für den VPCden VPC Ihres Clusters aus, wie im Abschnitt Netzwerk angezeigt. Unter „the security groups associated with your Lustre clients“ (die mit Ihren Lustre-Clients verknüpften Sicherheitsgruppen) wählen Sie Ihre Cluster-Sicherheitsgruppe aus. Wenn Sie keine Regeln für ausgehenden Datenverkehr festlegen, können Sie den All traffic (gesamten Datenverkehr) erlauben.

  3. Laden Sie das Speicherklassen-Manifest mit dem folgenden Befehl herunter.

    curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/storageclass.yaml
  4. Bearbeiten Sie den Parameterabschnitt in der Datei storageclass.yaml. Ersetzen Sie alle example value mit deinen eigenen Werten.

    parameters: subnetId: subnet-0eabfaa81fb22bcaf securityGroupIds: sg-068000ccf82dfba88 deploymentType: PERSISTENT_1 automaticBackupRetentionDays: "1" dailyAutomaticBackupStartTime: "00:00" copyTagsToBackups: "true" perUnitStorageThroughput: "200" dataCompressionType: "NONE" weeklyMaintenanceStartTime: "7:09:00" fileSystemTypeVersion: "2.12"
    • subnetId— Die Subnetz-ID, in der das Amazon FSx for Lustre-Dateisystem erstellt werden soll. Amazon FSx for Lustre wird nicht in allen Availability Zones unterstützt. Öffnen Sie die Amazon FSx for Lustre-Konsole unter, https://console.aws.amazon.com/fsx/um zu bestätigen, dass sich das Subnetz, das Sie verwenden möchten, in einer unterstützten Availability Zone befindet. Das Subnetz kann Ihre Knoten enthalten oder ein anderes Subnetz sein oder: VPC

      • Sie können nach den Knoten-Subnetzen in der suchen, AWS Management Console indem Sie die Knotengruppe im Abschnitt Compute auswählen.

      • Wenn das von Ihnen angegebene Subnetz nicht dasselbe Subnetz ist, in dem Sie Knoten haben, VPCs müssen Sie verbunden sein und sicherstellen, dass die erforderlichen Ports in Ihren Sicherheitsgruppen geöffnet sind.

    • securityGroupIds— Die ID der Sicherheitsgruppe, die Sie für das Dateisystem erstellt haben.

    • deploymentType(optional) — Der Bereitstellungstyp des Dateisystems. Gültige Werte sind SCRATCH_1, SCRATCH_2, PERSISTENT_1 und PERSISTENT_2. Weitere Informationen zu Bereitstellungstypen finden Sie unter Erstellen Sie Ihr Amazon FSx for Lustre-Dateisystem.

    • andere Parameter (optional) — Informationen zu den anderen Parametern finden Sie unter Bearbeiten StorageClass am GitHub.

  5. Erstellen Sie das Speicherklassen-Manifest.

    kubectl apply -f storageclass.yaml

    Eine Beispielausgabe sieht wie folgt aus.

    storageclass.storage.k8s.io/fsx-sc created
  6. Laden Sie das Manifest für den dauerhaften Volume-Anspruch herunter.

    curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/claim.yaml
  7. (Optional) Bearbeiten Sie die claim.yaml-Datei. Änderung 1200Gi auf einen der folgenden Inkrementwerte, basierend auf Ihren Speicheranforderungen und dendeploymentType, die Sie in einem vorherigen Schritt ausgewählt haben.

    storage: 1200Gi
    • SCRATCH_2 und PERSISTENT – 1.2 TiB, 2.4 TiB oder Schritte von 2,4 TiB über 2,4 TiB.

    • SCRATCH_1 – 1.2 TiB, 2.4 TiB, 3.6 TiB oder Schritte von 3,6 TiB über 3,6 TiB.

  8. Erstellen Sie den dauerhaften Volume-Anspruch.

    kubectl apply -f claim.yaml

    Eine Beispielausgabe sieht wie folgt aus.

    persistentvolumeclaim/fsx-claim created
  9. Vergewissern Sie sich, dass das Dateisystem bereitgestellt wurde.

    kubectl describe pvc

    Eine Beispielausgabe sieht wie folgt aus.

    Name: fsx-claim Namespace: default StorageClass: fsx-sc Status: Bound [...]
    Anmerkung

    Der Status kann für 5-10 Minuten als Pending angezeigt werden, bevor er zu Bound wechselt. Fahren Sie erst mit dem nächsten Schritt fort, wenn dies der Fall Status istBound. Wenn der Status länger als 10 Minuten Pending anzeigt, verwenden Sie die Warnmeldungen in den Events als Referenz zur Behebung von Problemen.

  10. Stellen Sie die Beispielanwendung bereit.

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/pod.yaml
  11. Stellen Sie sicher, dass die Beispielanwendung ausgeführt wird.

    kubectl get pods

    Eine Beispielausgabe sieht wie folgt aus.

    NAME READY STATUS RESTARTS AGE fsx-app 1/1 Running 0 8s
  12. Überprüfen Sie, ob das Dateisystem ordnungsgemäß von der Anwendung aufgespielt wurde.

    kubectl exec -ti fsx-app -- df -h

    Eine Beispielausgabe sieht wie folgt aus.

    Filesystem Size Used Avail Use% Mounted on overlay 80G 4.0G 77G 5% / tmpfs 64M 0 64M 0% /dev tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup 192.0.2.0@tcp:/abcdef01 1.1T 7.8M 1.1T 1% /data /dev/nvme0n1p1 80G 4.0G 77G 5% /etc/hosts shm 64M 0 64M 0% /dev/shm tmpfs 6.9G 12K 6.9G 1% /run/secrets/kubernetes.io/serviceaccount tmpfs 3.8G 0 3.8G 0% /proc/acpi tmpfs 3.8G 0 3.8G 0% /sys/firmware
  13. Stellen Sie sicher, dass die Beispiel-App Daten in das FSx for Lustre-Dateisystem geschrieben hat.

    kubectl exec -it fsx-app -- ls /data

    Eine Beispielausgabe sieht wie folgt aus.

    out.txt

    Diese Beispielausgabe zeigt, dass die Beispiel-App erfolgreich die out.txt-Datei in das Dateisystem geschrieben hat.

Anmerkung

Stellen Sie vor dem Löschen des Clusters sicher, dass Sie das FSx for Lustre-Dateisystem löschen. Weitere Informationen finden Sie unter Ressourcen bereinigen im FSxfor Lustre-Benutzerhandbuch.