Stellen Sie den Mountpoint for Amazon S3 S3-Treiber bereit - Amazon EKS

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

Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

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.

Stellen Sie den Mountpoint for Amazon S3 S3-Treiber bereit

Mit dem Mountpoint for Amazon S3 Container Storage Interface (CSI) -Treiber können Ihre Kubernetes-Anwendungen über eine Dateisystemschnittstelle auf Amazon S3 S3-Objekte zugreifen und so einen hohen Gesamtdurchsatz erzielen, ohne dass der Anwendungscode geändert werden muss.

Dieses Verfahren zeigt Ihnen, wie Sie den Mountpoint for Amazon S3 CSI Amazon EKS-Treiber bereitstellen. Bevor Sie fortfahren, lesen Sie bitte die Ü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 Sie einen IAM-OIDC-Anbieter für Ihren Cluster.

  • Version 2.12.3 oder höher der AWS CLI, die auf Ihrem Gerät installiert und konfiguriert ist, oder. AWS CloudShell

  • Das kubectl-Befehlszeilen-Tool ist auf Ihrem Gerät oder in der AWS CloudShell installiert. Die Version kann mit der Kubernetes-Version Ihres Clusters identisch oder bis zu einer Nebenversion sein, die vor oder nach der Kubernetes-Version liegt. 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 einer IAM-Richtlinie

Der Mountpoint for Amazon S3 CSI-Treiber benötigt Amazon S3 S3-Berechtigungen, um mit Ihrem Dateisystem zu interagieren. In diesem Abschnitt wird erläutert, wie Sie eine IAM-Richtlinie erstellen, die die erforderlichen Berechtigungen gewährt.

Die folgende Beispielrichtlinie folgt den IAM-Berechtigungsempfehlungen für Mountpoint. Alternativ können Sie den Link für AWS verwaltete Richtlinien verwenden:iam/home?#/policies/arn:aws: iam: :aws:policy/amazons3 FullAccess $jsonEditor [amazonS3, type="console "], aber diese verwaltete Richtlinie gewährt mehr BerechtigungenFullAccess, als für Mountpoint benötigt werden.

Weitere Informationen zu den empfohlenen Berechtigungen für Mountpoint GitHub finden Sie unter Mountpoint IAM-Berechtigungen für.

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

  2. Wählen Sie im linken Navigationsbereich die Option Policies aus.

  3. Wählen Sie auf der Seite Richtlinien die Option Richtlinie erstellen.

  4. Wählen Sie für Richtlinien-Editor die Option JSON aus.

  5. Kopieren Sie unter Richtlinien-Editor Folgendes und fügen Sie es ein:

    Wichtig

    Ersetzen Sie amzn-s3-demo-bucket1 durch den Namen Ihres eigenen Amazon-S3-Bucket.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "MountpointFullBucketAccess", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws: s3:::amzn-s3-demo-bucket1" ] }, { "Sid": "MountpointFullObjectAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:DeleteObject" ], "Resource": [ "arn:aws: s3:::amzn-s3-demo-bucket1/*" ] } ] }

    Directory-Buckets, die mit der Amazon S3 Express One Zone-Speicherklasse eingeführt wurden, verwenden einen anderen Authentifizierungsmechanismus als Buckets für allgemeine Zwecke. Anstatt s3:* Aktionen zu verwenden, sollten Sie die s3express:CreateSession Aktion verwenden. Informationen zu Directory-Buckets finden Sie unter Directory-Buckets im Amazon S3 S3-Benutzerhandbuch.

    Im Folgenden finden Sie ein Beispiel für eine Richtlinie mit den geringsten Rechten, die Sie für einen Directory-Bucket verwenden würden.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3express:CreateSession", "Resource": "arn:aws: s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket1--usw2-az1--x-s3" } ] }
  6. Wählen Sie Weiter aus.

  7. Geben Sie Ihrer Richtlinie auf der Seite Überprüfen und erstellen einen Namen. In dieser Beispielanleitung wird der Name AmazonS3CSIDriverPolicy verwendet.

  8. Wählen Sie Richtlinie erstellen aus.

Schritt 2: Erstellen einer IAM-Rolle

Der Mountpoint for Amazon S3 CSI-Treiber benötigt Amazon S3 S3-Berechtigungen, um mit Ihrem Dateisystem zu interagieren. In diesem Abschnitt wird erläutert, wie Sie eine IAM-Rolle erstellen, mit der Sie diese Berechtigungen delegieren. Um diese Rolle zu erstellen, können Sie eines der folgenden Tools verwenden:

Anmerkung

Die IAM-Richtlinie AmazonS3CSIDriverPolicy wurde im vorherigen Abschnitt erstellt.

eksctl

Um Ihre Mountpoint for Amazon S3 CSI-Treiber-IAM-Rolle zu erstellen mit eksctl

Führen Sie die folgenden Befehle aus, um die IAM-Rolle und das Kubernetes-Dienstkonto zu erstellen. Mit diesen Befehlen wird auch die AmazonS3CSIDriverPolicy IAM-Richtlinie an die Rolle angehängt, das Kubernetes-Dienstkonto (s3-csi-controller-sa) mit dem Amazon-Ressourcennamen (ARN) der IAM-Rolle annotiert und der Vertrauensrichtlinie für die IAM-Rolle der Kubernetes-Dienstkontoname hinzugefügt.

CLUSTER_NAME=my-cluster REGION=region-code ROLE_NAME=AmazonEKS_S3_CSI_DriverRole POLICY_ARN=AmazonEKS_S3_CSI_DriverRole_ARN eksctl create iamserviceaccount \ --name s3-csi-driver-sa \ --namespace kube-system \ --cluster $CLUSTER_NAME \ --attach-policy-arn $POLICY_ARN \ --approve \ --role-name $ROLE_NAME \ --region $REGION \ --role-only

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 (Identitätsanbieter) die Option OpenID Connect provider URL (OpenID-Connect-Anbieter-URL) für Ihren Cluster aus (wie unter Overview (Übersicht) in Amazon EKS gezeigt).

      Wenn keine angezeigt werden, überprüfen Sie die Voraussetzungen. URLs

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

    4. Wählen Sie Weiter aus.

  5. Gehen Sie auf der Seite Berechtigungen hinzufügen wie folgt vor:

    1. Geben Sie im Feld Richtlinien filtern den Text AmazonS3-Richtlinie einCSIDriver.

      Anmerkung

      Diese Richtlinie wurde im vorherigen Abschnitt erstellt.

    2. Aktivieren Sie das Kontrollkästchen links neben dem Ergebnis für AmazonS3CSIDriverPolicy, das bei der Suche zurückgegeben wurde.

    3. Wählen Sie Weiter aus.

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

    1. Geben Sie als Rollenname einen eindeutigen Namen für Ihre Rolle ein, z. B. AmazonEKS_S3_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 wie folgt aussieht:

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

    Fügen Sie am Ende der vorherigen Zeile ein Komma und anschließend die folgende Zeile hinzu. Ersetzen Sie es durch die Region, in der region-code sich Ihr Cluster befindet AWS . EXAMPLED539D4633E53DE1B71EXAMPLEErsetzen Sie es durch die OIDC-Anbieter-ID Ihres Clusters.

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa"
  10. Stellen Sie sicher, dass der Condition Operator auf eingestellt ist. "StringEquals"

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

AWS CLI

  1. Zeigen Sie die OIDC-Anbieter-URL Ihres Clusters an. Ersetzen Sie my-cluster mit dem Namen Ihres Clusters. 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 und weisen Sie dem Kubernetes-Dienstkonto die AssumeRoleWithWebIdentity-Aktion zu.

    1. Kopieren Sie den folgenden Inhalt in eine Datei namens aws-s3-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": { "StringEquals": { "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com" } } } ] }
    2. Erstellen Sie die -Rolle. Sie können AmazonEKS_S3_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_S3_CSI_DriverRole \ --assume-role-policy-document file://"aws-s3-csi-driver-trust-policy.json"
  3. Hängen Sie die zuvor erstellte IAM-Richtlinie mit dem folgenden Befehl an die Rolle an.

    aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/AmazonS3CSIDriverPolicy \ --role-name AmazonEKS_S3_CSI_DriverRole
    Anmerkung

    Die IAM-Richtlinie AmazonS3CSIDriverPolicy wurde im vorherigen Abschnitt erstellt.

  4. Überspringen Sie diesen Schritt, wenn Sie den Treiber als Amazon EKS-Add-on installieren. Erstellen Sie für selbstverwaltete Treiberinstallationen Kubernetes-Dienstkonten, die mit dem ARN der von Ihnen erstellten IAM-Rolle annotiert sind.

    1. Speichern Sie den folgenden Inhalt in einer Datei mit dem Namen mountpoint-s3-service-account.yaml. Ersetzen Sie 111122223333 durch Ihre Konto-ID.

      --- apiVersion: v1 kind: ServiceAccount metadata: labels: app.kubernetes.io/name: aws-mountpoint-s3-csi-driver name: mountpoint-s3-csi-controller-sa namespace: kube-system annotations: eks.amazonaws.com/role-arn: arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
    2. Erstellen Sie das Kubernetes-Servicekonto in Ihrem Cluster. Das Kubernetes-Dienstkonto (mountpoint-s3-csi-controller-sa) ist mit dem Namen der IAM-Rolle versehen, die Sie erstellt haben. AmazonEKS_S3_CSI_DriverRole

      kubectl apply -f mountpoint-s3-service-account.yaml
      Anmerkung

      Wenn Sie das Plugin in diesem Verfahren bereitstellen, wird es erstellt und für die Verwendung eines Servicekontos mit dem Namen s3-csi-driver-sa konfiguriert.

Schritt 3: Installieren Sie den Mountpoint for Amazon S3 CSI-Treiber

Sie können den Mountpoint for Amazon S3 CSI-Treiber über das Amazon EKS-Add-on installieren. Sie können die folgenden Tools verwenden, um das Add-on zu Ihrem Cluster hinzuzufügen:

Alternativ können Sie den Mountpoint for Amazon S3 CSI-Treiber als selbstverwaltete Installation installieren. Anweisungen zur Durchführung einer selbstverwalteten Installation finden Sie im GitHub unter Installation.

Ausgehend von können Sie Taints so konfigurierenv1.8.0, dass sie für die Pods des CSI-Treibers toleriert werden. Geben Sie dazu entweder einen benutzerdefinierten Satz von Taints an, mit denen Sie tolerieren möchten, node.tolerations oder Sie können alle Taints mit tolerieren. node.tolerateAllTaints Weitere Informationen finden Sie unter Taints and Tolerations in der Kubernetes-Dokumentation.

eksctl

Um das Amazon S3 CSI-Add-on hinzuzufügen, verwenden Sie eksctl

Führen Sie den folgenden Befehl aus. Ersetzen Sie my-cluster mit dem Namen Ihres Clusters, 111122223333 mit Ihrer Konto-ID und AmazonEKS_S3_CSI_DriverRole mit dem Namen der zuvor erstellten IAM-Rolle.

eksctl create addon --name aws-mountpoint-s3-csi-driver --cluster my-cluster \ --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole --force

Wenn Sie die Option --force entfernen und eine der Amazon-EKS-Add-on-Einstellungen mit Ihren vorhandenen Einstellungen in Konflikt steht, schlägt die Aktualisierung des Amazon-EKS-Add-ons fehl und Sie erhalten eine Fehlermeldung, die Sie bei der Lösung des Konflikts unterstützt. Bevor Sie diese Option angeben, stellen Sie sicher, dass das Amazon EKS-Add-on keine Einstellungen verwaltet, die Sie verwalten müssen, da diese Einstellungen mit dieser Option überschrieben werden. Weitere Informationen zu anderen Optionen für diese Einstellung finden Sie unter Add-Ons in der eksctl-Dokumentation. Weitere Informationen zur Amazon EKS Kubernetes-Feldverwaltung finden Sie unter. Ermitteln Sie Felder, die Sie für Amazon EKS-Add-Ons anpassen können

Sie können eksctl mithilfe von Konfigurationsdateien Anpassungen vornehmen. Weitere Informationen finden Sie in der eksctl Dokumentation unter Arbeiten mit Konfigurationswerten. Das folgende Beispiel zeigt, wie man alle Taints toleriert.

# config.yaml ... addons: - name: aws-mountpoint-s3-csi-driver serviceAccountRoleARN: arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole configurationValues: |- node: tolerateAllTaints: true

AWS Management Console

  1. Öffnen Sie die Amazon-EKS-Konsole.

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

  3. Wählen Sie den Namen des Clusters, für den Sie das Mountpoint for Amazon S3 CSI-Add-on konfigurieren möchten.

  4. Wählen Sie die Registerkarte Add-ons.

  5. Wählen Sie Weitere Add-Ons erhalten.

  6. Führen Sie auf der Seite Add-Ons auswählen die folgenden Schritte aus:

    1. Aktivieren Sie im Bereich Amazon EKS-Addons das Kontrollkästchen Mountpoint for Amazon S3 CSI Driver.

    2. Wählen Sie Weiter aus.

  7. Gehen Sie auf der Seite Konfigurieren ausgewählter Add-Ons-Einstellungen wie folgt vor:

    1. Wählen Sie die Version aus, die Sie verwenden möchten.

    2. Wählen Sie für Select IAM role den Namen einer IAM-Rolle aus, der Sie die Mountpoint for Amazon S3 CSI-Treiber-IAM-Richtlinie angehängt haben.

    3. (Optional) Aktualisieren Sie die Methode zur Konfliktlösung, nachdem Sie die optionalen Konfigurationseinstellungen erweitert haben. Wenn Sie Override auswählen, können eine oder mehrere Einstellungen für das bestehende Add-on mit den Amazon EKS-Add-On-Einstellungen überschrieben werden. Wenn Sie diese Option nicht aktivieren und ein Konflikt mit Ihren vorhandenen Einstellungen besteht, schlägt der Vorgang fehl. Sie können die sich daraus ergebende Fehlermeldung heranziehen, um den Konflikt zu beheben. Bevor Sie diese Option auswählen, stellen Sie sicher, dass das Amazon EKS-Add-on keine Einstellungen verwaltet, die Sie selbst verwalten müssen.

    4. (Optional) Konfigurieren Sie Toleranzen im Feld Konfigurationswerte, nachdem Sie die optionalen Konfigurationseinstellungen erweitert haben.

    5. Wählen Sie Weiter aus.

  8. Wählen Sie auf der Seite Überprüfen und hinzufügen die Option Erstellen aus. Nachdem die Installation der Add-Ons abgeschlossen ist, wird Ihr installiertes Add-On angezeigt.

AWS CLI

So fügen Sie das Mountpoint for Amazon S3 CSI Add-on mit der CLI hinzu AWS

Führen Sie den folgenden Befehl aus. Ersetzen Sie my-cluster mit dem Namen Ihres Clusters, 111122223333 mit Ihrer Konto-ID und AmazonEKS_S3_CSI_DriverRole mit dem Namen der zuvor erstellten Rolle.

aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \ --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole

Sie können den Befehl mit dem Flag anpassen. --configuration-values Das folgende alternative Beispiel zeigt, wie man alle Makel toleriert.

aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \ --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole \ --configuration-values '{"node":{"tolerateAllTaints":true}}'

Schritt 4: Mountpoint für Amazon S3 konfigurieren

In den meisten Fällen können Sie Mountpoint für Amazon S3 nur mit einem Bucket-Namen konfigurieren. Anweisungen zur Konfiguration von Mountpoint für Amazon S3 finden Sie unter Mountpoint für Amazon S3 konfigurieren auf. GitHub

Schritt 5: Stellen Sie eine Beispielanwendung bereit

Sie können die statische Bereitstellung des Treibers in einem vorhandenen Amazon S3-Bucket einsetzen. Weitere Informationen finden Sie unter Statische Bereitstellung auf GitHub.