Speichern Sie ein elastisches Dateisystem bei Amazon EFS - 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 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 Amazon EFS Container Storage Interface (CSI) -Treiber bietet eine CSI Schnittstelle, die Kubernetes Cluster AWS , auf denen der Lebenszyklus von EFS Amazon-Dateisystemen verwaltet wird. 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 (sieheVerstehen Sie den Lebenszyklus der Kubernetes-Version 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 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.

  • Ab Version 2.0.0 wechselte dieser Treiber von „Verwenden“ stunnel zu „efs-proxyfür TLS Verbindungen“. 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.

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 Erstelle eine IAM OIDC Anbieter für Ihren Cluster.

  • 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.

  • Das kubectl Befehlszeilentool ist auf Ihrem Gerät installiert oder AWS CloudShell. 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 Richten Sie kubectl und eksctl ein.

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. Um dieses Verfahren zu implementieren, können Sie eines der folgenden Tools verwenden:

Anmerkung

Die spezifischen Schritte in diesem Verfahren wurden für die Verwendung des Treibers als EKS Amazon-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 eksctl zu erstellen. Ersetzen my-cluster mit Ihrem Clusternamen und AmazonEKS_EFS_CSI_DriverRole mit dem Namen für Ihre 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 Folgendes aus, um eine IAM Rolle mit 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 für Identity Provider die OpenID Connect Anbieter URL für Ihren Cluster (wie unter Übersicht in Amazon angezeigtEKS).

    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 Filterrichtlinien Folgendes ein AmazonEFSCSIDriverPolicy.

    2. Aktivieren Sie das Kontrollkästchen links neben AmazonEFSCSIDriverPolicy ist bei der Suche zurückgekehrt.

    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 Rollenname einen eindeutigen Namen für Ihre 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 im IAMBenutzerhandbuch unter IAMRessourcen taggen.

    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. Ersetzen region-code mit der AWS Region, in der sich Ihr Cluster befindet. Ersetzen EXAMPLED539D4633E53DE1B71EXAMPLE mit der 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

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

  1. Sehen Sie sich den OIDC Anbieter Ihres Clusters anURL. Ersetzen my-cluster mit Ihrem 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 mit dem Namen aws-efs-csi-driver-trust-policy.json``. Ersetzen 111122223333 mit deiner Konto-ID. Ersetzen EXAMPLED539D4633E53DE1B71EXAMPLE and region-code mit den im vorherigen Schritt zurückgegebenen Werten. 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:

      { "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 ändern AmazonEKS_EFS_CSI_DriverRole zu einem anderen Namen, 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 AWS Regionen AWS GovCloud (USA-Ost) oder AWS GovCloud (US-West) befindet, ersetzen Sie ihn durch arn: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 GitHub Container-Roadmap-Repository.

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

Schritt 3: Erstellen Sie ein EFS Amazon-Dateisystem

Anmerkung

Dieser Schritt ist für AWS Fargate nicht erforderlich. A Pod Wenn auf Fargate ausgeführt wird, wird automatisch ein EFS Amazon-Dateisystem bereitgestellt, ohne dass manuelle Schritte zur Treiberinstallation erforderlich sind.

Informationen zum Erstellen eines EFS Amazon-Dateisystems finden Sie unter Erstellen eines EFS Amazon-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.