Speichern Sie ein elastisches Dateisystem mit Amazon EFS - Amazon EKS

Helfen Sie mit, diese Seite zu verbessern

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.

Möchten Sie zu diesem Benutzerhandbuch beitragen? Wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet. Ihre Beiträge werden dazu beitragen, dass unser Benutzerhandbuch für alle besser wird.

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 ein elastisches Dateisystem mit Amazon EFS

Amazon Elastic File System (Amazon EFS) bietet vollständig elastischen Serverless-Dateispeicher, sodass Sie Dateidaten gemeinsam nutzen können, ohne Speicherkapazität und Leistung bereitstellen oder verwalten zu müssen. Der Amazon EFS Container Storage Interface (CSI) -Treiber bietet eine CSI-Schnittstelle, die Kubernetes Cluster, die AWS zur Verwaltung des Lebenszyklus von Amazon EFS-Dateisystemen ausgeführt werden. In diesem Thema erfahren Sie, wie Sie den Amazon-EFS-CSI-Treiber für Ihren Amazon-EKS-Cluster bereitstellen.

Überlegungen

  • Der Amazon EFS CSI-Treiber ist nicht mit Windows-basierten Container-Images kompatibel.

  • Sie können keine dynamische Bereitstellung für persistente Volumes mit Fargate-Knoten verwenden, aber Sie können statische Bereitstellung verwenden.

  • Für die dynamische Bereitstellung ist der Treiber 1.2 oder höher erforderlich. Sie können die statische Bereitstellung für persistente Volumes verwenden, indem Sie die Version 1.1 des Treibers auf jeder unterstützten Amazon EKS-Cluster-Version verwenden (sieheVerstehe die Kubernetes Versionslebenszyklus auf EKS).

  • Version 1.3.2 oder höher dieses Treibers unterstützt die Arm64-Architektur, einschließlich Amazon EC2 Graviton-basierter Instances.

  • Version 1.4.2 oder höher dieses Treibers unterstützt die Verwendung von FIPS zum Mounten von Dateisystemen.

  • Beachten Sie die Ressourcenkontingente für Amazon EFS. Beispielsweise gibt es ein Kontingent von 1000 Access Points, die für jedes Amazon EFS-Dateisystem erstellt werden können. Weitere Informationen finden Sie unter Amazon-EFS-Ressourcenkontingente, die Sie nicht ändern können.

  • Ab Version 2.0.0 wurde dieser Treiber von der Verwendung stunnel auf efs-proxy für TLS-Verbindungen umgestellt. Wenn er verwendet efs-proxy wird, öffnet er eine Anzahl von Threads, die einem plus der Anzahl der Kerne für den Knoten entspricht, auf dem er läuft.

  • Der Amazon EFS CSI-Treiber ist nicht mit Amazon EKS-Hybridknoten kompatibel.

Voraussetzungen

  • Ein bestehendes AWS Identity and Access Management (IAM) OpenID Connect (OIDC) Anbieter für Ihren Cluster. Informationen zum Feststellen, ob Sie bereits über einen verfügen oder einen erstellen müssen, finden Sie unter Erstellen eines IAM OIDC Anbieter für Ihren Cluster.

  • Version 2.12.3 oder höher oder Version 1.27.160 oder höher der auf Ihrem Gerät installierten und konfigurierten AWS Befehlszeilenschnittstelle (AWS CLI) 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 der 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 im AWS CloudShell Benutzerhandbuch unter AWS CLI in Ihrem Home-Verzeichnis installieren.

  • Das kubectl-Befehlszeilen-Tool ist auf Ihrem Gerät oder in der AWS CloudShell installiert. Die Version kann dieselbe sein oder bis zu einer Nebenversion 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 Einrichten kubectl und eksctl.

Anmerkung

A Pod Wenn auf Fargate ausgeführt wird, wird automatisch ein Amazon EFS-Dateisystem bereitgestellt, ohne dass manuelle Schritte zur Treiberinstallation erforderlich sind.

Schritt 1: Erstellen einer IAM-Rolle

Der Amazon-EFS-CSI-Treiber benötigt IAM-Berechtigungen, um mit Ihrem Dateisystem zu interagieren. Erstellen Sie eine IAM-Rolle und fügen Sie ihr die erforderliche AWS verwaltete Richtlinie hinzu. Um dieses Verfahren zu implementieren, können Sie eines der folgenden Tools verwenden:

Anmerkung

Die spezifischen Schritte in diesem Verfahren sind für die Verwendung des Treibers als Amazon-EKS-Add-on geschrieben. Einzelheiten zu selbstverwalteten Installationen finden Sie unter Treiberberechtigungen einrichten für GitHub.

eksctl

Führen Sie die folgenden Befehle aus, um eine IAM-Rolle mit zu erstellen. eksctl Ersetzen Sie my-cluster durch den Namen Ihres Clusters und AmazonEKS_EFS_CSI_DriverRole durch den Namen Ihrer Rolle.

export cluster_name=my-cluster export role_name=AmazonEKS_EFS_CSI_DriverRole eksctl create iamserviceaccount \ --name efs-csi-controller-sa \ --namespace kube-system \ --cluster $cluster_name \ --role-name $role_name \ --role-only \ --attach-policy-arn arn:aws: iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \ --approve TRUST_POLICY=$(aws iam get-role --role-name $role_name --query 'Role.AssumeRolePolicyDocument' | \ sed -e 's/efs-csi-controller-sa/efs-csi-*/' -e 's/StringEquals/StringLike/') aws iam update-assume-role-policy --role-name $role_name --policy-document "$TRUST_POLICY"

AWS Management Console

Führen Sie den folgenden Befehl aus, um eine IAM-Rolle mit zu erstellen. AWS Management Console

  1. Öffnen Sie unter https://console.aws.amazon.com/iam/ die IAM-Konsole.

  2. Wählen Sie im linken Navigationsbereich Roles aus.

  3. Klicken Sie auf der Seite Roles (Rollen) auf Create role (Rolle erstellen).

  4. Gehen Sie auf der Seite Select trusted entity (Vertrauenswürdige Entität auswählen) wie folgt vor:

    1. Wählen Sie im Abschnitt Trusted entity type (Typ der vertrauenswürdigen Entität) die Option Web identity (Web-Identität) aus.

    2. Wählen Sie für Identity Provider die OpenID Connect Anbieter-URL für Ihren Cluster (wie unter Übersicht in Amazon EKS angezeigt).

    3. Wählen Sie für Audience (Zielgruppe) sts.amazonaws.com.

    4. Wählen Sie Weiter.

  5. Gehen Sie auf der Seite Add permissions (Berechtigungen hinzufügen) wie folgt vor:

    1. Geben Sie im Feld Filter policies (Filterrichtlinien) AmazonEFSCSIDriverPolicy ein.

    2. Aktivieren Sie das Kontrollkästchen links neben der AmazonEFSCSIDriverPolicy, die bei der Suche zurückgegeben wurde.

    3. Wählen Sie Weiter.

  6. Gehen Sie auf der Seite Name, review, and create (Benennen, überprüfen und erstellen) wie folgt vor:

    1. Geben Sie unter Role name (Rollenname) einen eindeutigen Namen für die Rolle ein, z. B. AmazonEKS_EFS_CSI_DriverRole.

    2. Fügen Sie der Rolle unter Tags hinzufügen (optional) Metadaten hinzu, indem Sie Tags als Schlüssel-Wert-Paare anfügen. Weitere Informationen zur Verwendung von Tags in IAM finden Sie unter Markieren von IAM-Ressourcen im IAM-Benutzerhandbuch.

    3. Wählen Sie Create role (Rolle erstellen) aus.

  7. Nachdem die Rolle erstellt wurde, wählen Sie die Rolle in der Konsole aus, um sie zur Bearbeitung zu öffnen.

  8. Wählen Sie die Registerkarte Trust Relationships (Vertrauensstellungen) und dann Edit trust policy (Vertrauensrichtlinie bearbeiten) aus.

  9. Suchen Sie die Zeile, die der folgenden Zeile ähnelt:

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"

    Fügen Sie die folgende Zeile über der vorherigen Zeile hinzu. region-codeErsetzen Sie es durch die AWS Region, in der sich Ihr Cluster befindet. EXAMPLED539D4633E53DE1B71EXAMPLEErsetzen Sie es durch die OIDC-Anbieter-ID Ihres Clusters.

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:efs-csi-*",
  10. Ändern Sie den Condition-Operator von "StringEquals" zu "StringLike".

  11. Wählen Sie Update Policy (Richtlinie aktualisieren) aus, um den Vorgang abzuschließen.

AWS CLI

Führen Sie die folgenden Befehle aus, um eine IAM-Rolle mit AWS CLI zu erstellen.

  1. Sehen Sie sich die OIDC-Provider-URL Ihres Clusters an. Ersetzen Sie my-cluster durch Ihren Clusternamen. Wenn die Ausgabe des Befehls None ist, überprüfen Sie die Voraussetzungen.

    aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text

    Eine Beispielausgabe sieht wie folgt aus.

    https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
  2. Erstellen Sie die IAM-Rolle, die die Aktion AssumeRoleWithWebIdentity erlaubt.

    1. Kopieren Sie den folgenden Inhalt in eine Datei namens aws-efs-csi-driver-trust-policy .json``. Ersetzen Sie 111122223333 durch Ihre Konto-ID. Ersetzen Sie EXAMPLED539D4633E53DE1B71EXAMPLE und region-code mit den im vorherigen Schritt zurückgegebenen Werten.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws: iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:efs-csi-*", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com" } } } ] }
    2. Erstellen Sie die -Rolle. Sie können AmazonEKS_EFS_CSI_DriverRole in einen anderen Namen ändern, aber wenn Sie dies tun, stellen Sie sicher, dass Sie ihn auch in späteren Schritten ändern.

      aws iam create-role \ --role-name AmazonEKS_EFS_CSI_DriverRole \ --assume-role-policy-document file://"aws-efs-csi-driver-trust-policy.json"
  3. Fügen Sie der Rolle mit dem AWS folgenden Befehl die erforderliche verwaltete Richtlinie hinzu.

    aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \ --role-name AmazonEKS_EFS_CSI_DriverRole

Schritt 2: Holen Sie sich den Amazon EFS CSI-Treiber

Wir empfehlen, den Amazon-EFS-CSI-Treiber über das Amazon-EKS-Add-on zu installieren. Wenn Sie ein Amazon-EKS-Add-on zu Ihrem Cluster hinzufügen möchten, lesen Sie Ein Amazon EKS-Add-on erstellen. Weitere Informationen zu Add-ons finden Sie unter Amazon-EKS-Add-ons. Wenn Sie das Amazon EKS-Add-on nicht verwenden können, empfehlen wir Ihnen, ein Problem mit der Begründung, warum Sie das nicht können, an das GitHub Container-Roadmap-Repository zu senden.

Wenn Sie alternativ eine selbstverwaltete Installation des Amazon EFS CSI-Treibers wünschen, finden Sie weitere Informationen unter Installation auf GitHub.

Schritt 3: Erstellen eines Amazon EFS-Dateisystems

Informationen zum Erstellen eines Amazon EFS-Dateisystems finden Sie unter Erstellen eines Amazon EFS-Dateisystems für Amazon EKS auf GitHub.

Schritt 4: Stellen Sie eine Beispielanwendung bereit

Sie können eine Vielzahl von Beispiel-Apps bereitstellen und diese nach Bedarf ändern. Weitere Informationen finden Sie unter Beispiele auf GitHub.