Speichern Sie ein elastisches Dateisystem bei Amazon EFS - Amazon EKS

Hilf mit, diese Seite zu verbessern

Möchten Sie zu diesem Benutzerhandbuch beitragen? Scrollen Sie zum Ende dieser Seite und wählen Sie Diese Seite bearbeiten am aus GitHub. Ihre Beiträge werden dazu beitragen, unser Benutzerhandbuch für alle 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.

Speichern Sie ein elastisches Dateisystem bei Amazon EFS

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

Überlegungen

  • Der EFS CSI Amazon-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 EKS Amazon-Cluster-Version verwenden.

  • 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 FIPS zum Mounten von Dateisystemen.

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

Voraussetzungen

  • Ein vorhandener 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 Sie einen IAM OIDC Anbieter für Ihren Cluster.

  • Version 2.12.3 oder höher oder Version 1.27.160 oder höher von AWS Command Line Interface (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. Paket-Manager wie yum, apt-get oder Homebrew für macOS sind oft mehrere Versionen hinter der neuesten Version von AWS CLI. Informationen zur Installation der neuesten Version von finden Sie unter Installation, Aktualisierung und Deinstallation der AWS CLI und Schnellkonfiguration mit aws configure im AWS Command Line Interface -Benutzerhandbuch. 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.

  • Das kubectl-Befehlszeilen-Tool ist auf Ihrem Gerät oder in der AWS CloudShell installiert. Die Version kann der Kubernetes-Version Ihres Clusters entsprechen oder eine Nebenversion älter oder neuer sein. 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.

Schritt 1: Erstellen Sie eine IAM Rolle

Der EFS CSI Amazon-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. Sie können eksctl, die AWS Management Console oder die AWS CLI verwenden.

Anmerkung

Die spezifischen Schritte in diesem Verfahren wurden für die Verwendung des Treibers als EKS Amazon-Add-on geschrieben. Ausführliche Informationen zu selbstverwalteten Installationen finden Sie auf GitHub unter Set up driver permission.

eksctl

Um Ihre EFS CSI IAM Amazon-Fahrerrolle zu erstellen mit eksctl

Führen Sie die folgenden Befehle aus, um die IAM Rolle zu erstellen. 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
Um Ihre EFS CSI IAM Amazon-Fahrerrolle mit dem zu erstellen AWS Management Console
  1. Öffnen Sie die IAM Konsole unter https://console.aws.amazon.com/iam/.

  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 unter Identitätsanbieter den OpenID ConnectAnbieter URL für Ihren Cluster aus (wie unter Übersicht in Amazon angezeigtEKS).

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

    4. Wählen Sie Next (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 Next (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 Tagging IAM resources im IAMBenutzerhandbuch.

    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 AWS-Region das, in dem sich Ihr Cluster befindet. EXAMPLED539D4633E53DE1B71EXAMPLEErsetzen Sie durch die OIDC Provider-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
Um Ihre EFS CSI IAM Amazon-Fahrerrolle mit dem zu erstellen AWS CLI
  1. Sehen Sie sich den OIDC Anbieter Ihres Clusters anURL. 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 AssumeRoleWithWebIdentity Aktion gewährt.

    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. Wenn sich Ihr Cluster in den Ländern AWS GovCloud (USA-Ost) oder AWS GovCloud (US-West) befindet AWS-Regionen, ersetzen Sie ihn durcharn:aws:. arn:aws-us-gov:

      { "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 folgenden Befehl die erforderliche AWS verwaltete Richtlinie hinzu. Wenn sich Ihr Cluster in den Ländern AWS GovCloud (USA-Ost) oder AWS GovCloud (US-West) befindet AWS-Regionen, ersetzen Sie ihn durcharn:aws:. arn:aws-us-gov:

    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 EFS CSI Amazon-Treiber

Wir empfehlen, dass Sie den EFS CSI Amazon-Treiber über das EKS Amazon-Add-on installieren. Informationen zum Hinzufügen eines EKS Amazon-Add-ons zu Ihrem Cluster finden Sie unterEin EKS Amazon-Add-on erstellen. Weitere Informationen zu Add-ons finden Sie unter EKSAmazon-Add-Ons. Wenn Sie das EKS Amazon-Add-on nicht verwenden können, empfehlen wir Ihnen, ein Problem mit der Begründung einzureichen, warum Sie das nicht können, an das GitHubContainer-Roadmap-Repository.

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

Schritt 3: Erstellen Sie ein EFS Amazon-Dateisystem

Anmerkung

Dieser Schritt ist nicht erforderlich für AWS Fargate. A, Pod das auf Fargate läuft, mountet automatisch ein EFS Amazon-Dateisystem.

Informationen zum Erstellen eines EFS Amazon-Dateisystems finden Sie unter EFS Amazon-Dateisystem für Amazon erstellen EKS aufGitHub.

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 in GitHub.