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

Amazon EFS-CSI-Treiber

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, mit der Kubernetes Cluster, die auf ausgeführt werden AWS , den Lebenszyklus von Amazon EFS-Dateisystemen verwalten können. In diesem Thema erfahren Sie, wie Sie den Amazon-EFS-CSI-Treiber für Ihren Amazon-EKS-Cluster bereitstellen.

Überlegungen
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 eines IAM-OIDC-Anbieters für Ihren Cluster.

  • Version 2.12.3 oder höher oder Version 1.27.160 oder höher der AWS Command Line Interface (AWS CLI), die auf Ihrem Gerät oder installiert und konfiguriert ist 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 in installierte AWS CLI Version liegt AWS CloudShell möglicherweise auch hinter der neuesten Version. Informationen zum Aktualisieren finden Sie unter Installieren AWS CLI von in Ihrem Stammverzeichnis 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.28 ist, können Sie kubectl-Version 1.27, 1.28, oder 1.29 damit verwenden. Informationen zum Installieren oder Aktualisieren von kubectl finden Sie unter Installieren oder Aktualisieren von kubectl.

Anmerkung

Ein , der auf Pod ausgeführt wird, mountet AWS Fargate automatisch ein Amazon-EFS-Dateisystem.

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

Anmerkung

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

eksctl

So erstellen Sie Ihre IAM-Rolle des Amazon-EFS-CSI-Treibers 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
So erstellen Sie Ihre IAM-Rolle des Amazon-EFS-CSI-Treibers mit der 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 (Identitätsanbieter) die Option OpenID Connect provider URL (-Anbieter-URL) für Ihren Cluster aus (wie unter Overview (Übersicht) in Amazon EKS gezeigt).

    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 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. Ersetzen Sie durch region-code die AWS-Region , in der sich Ihr Cluster befindet. Ersetzen von EXAMPLED539D4633E53DE1B71EXAMPLE mit der 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
So erstellen Sie Ihre IAM-Rolle des Amazon-EFS-CSI-Treibers mit der AWS CLI
  1. Zeigen Sie die OIDC-Anbieter-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. Wenn sich Ihr Cluster in der AWS GovCloud (USA-Ost) oder AWS GovCloud (USA-West) befindet AWS-Regionen, ersetzen Sie 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 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. Hängen Sie die erforderliche AWS verwaltete Richtlinie mit dem folgenden Befehl an die Rolle an. Wenn sich Ihr Cluster in der AWS GovCloud (USA-Ost) oder AWS GovCloud (USA-West) befindet AWS-Regionen, ersetzen Sie 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

Installation des Amazon-EFS-CSI-Treibers

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 Erstellen eines Add-Ons. 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 zu den Gründen, warum Sie es nicht verwenden können, an das GitHub-Repository für Containers-Roadmap zu senden.

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

Erstellen eines Amazon-EFS-Dateisystems

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

Bereitstellen einer Beispielanwendung

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