Unterstützung für die Verbesserung dieser Seite beitragen
Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.
Bereitstellung des CSI-Treibers für Mountpoint für Amazon S3
Mit dem Mountpoint für Amazon S3 Container Storage Interface (CSI)-Treiber
Dieses Verfahren zeigt Ihnen, wie Sie den CSI-Amazon-EKS-Treiber für Mountpoint für Amazon S3 bereitstellen. Lesen Sie sich die Hinweise durch, bevor Sie fortfahren.
Voraussetzungen
-
Ein vorhandener Anbieter für AWS Identity and Access Management (IAM) OpenID Connect (OIDC) 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 auf Ihrem Gerät oder in AWS CloudShell installiert und konfiguriert.
-
Das
kubectl-Befehlszeilen-Tool ist auf Ihrem Gerät oder in AWS CloudShell installiert. Die Version kann mit der Kubernetes-Version Ihres Clusters identisch sein oder bis zu einer Nebenversion älter oder neuer sein. Wenn Ihre Clusterversion beispielsweise1.29ist, können Siekubectl-Version1.28,1.29, oder1.30damit verwenden. Informationen zum Installieren oder Aktualisieren vonkubectlfinden Sie unter kubectl und eksctl einrichten.
Schritt 1: Erstellen einer IAM-Richtlinie
Der CSI-Treiber für Mountpoint für Amazon S3 erfordert Amazon-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 richtet sich nach den IAM-Berechtigungsempfehlungen für Mountpoint. Alternativ können Sie auch die von AWS verwaltete Richtlinie AmazonS3FullAccess
Weitere Informationen zu den empfohlenen Berechtigungen für Mountpoint finden Sie unter Mountpoint-IAM-Berechtigungen
-
Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie im linken Navigationsbereich die Option Policies aus.
-
Wählen Sie auf der Seite Richtlinien die Option Richtlinie erstellen.
-
Wählen Sie für Richtlinien-Editor die Option JSON aus.
-
Kopieren Sie unter Richtlinien-Editor Folgendes und fügen Sie es ein:
Wichtig
Ersetzen Sie
amzn-s3-demo-bucket1durch 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/*" ] } ] }Verzeichnis-Buckets, die mit der Speicherklasse für Amazon S3 Express One Zone eingeführt wurden, verwenden einen anderen Authentifizierungs-Mechanismus als allgemeine Buckets. Anstatt
s3:*-Aktionen zu verwenden, sollten Sie dies3express:CreateSession-Aktion verwenden. Informationen zu Verzeichnis-Buckets finden Sie unter Verzeichnis-Buckets im Amazon-S3-Benutzerhandbuch.Nachfolgend finden Sie ein Beispiel für eine Richtlinie mit geringsten Berechtigungen, die Sie für einen Verzeichnis-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" } ] } -
Wählen Sie Weiter aus.
-
Geben Sie Ihrer Richtlinie auf der Seite Überprüfen und erstellen einen Namen. In dieser Beispielanleitung wird der Name
AmazonS3CSIDriverPolicyverwendet. -
Wählen Sie Richtlinie erstellen aus.
Schritt 2: Erstellen einer IAM-Rolle
Der CSI-Treiber für Mountpoint für Amazon S3 erfordert Amazon-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
So erstellen Sie Ihre IAM-Rolle für CSI-Treiber für Mountpoint für Amazon S3 mit eksctl
Führen Sie die folgenden Befehle aus, um die IAM-Rolle und das Kubernetes-Servicekonto zu erstellen. Über diese Befehle wird außerdem die AmazonS3CSIDriverPolicy IAM-Richtlinie an die Rolle angefügt, das Kubernetes-Servicekonto (s3-csi-controller-sa) mit dem Amazon-Ressourcennamen (ARN) der IAM-Rolle versehen und der Name des Kubernetes-Servicekontos zur Vertrauensrichtlinie für die IAM-Rolle 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-Managementkonsole
-
Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie im linken Navigationsbereich Roles aus.
-
Klicken Sie auf der Seite Roles (Rollen) auf Create role (Rolle erstellen).
-
Gehen Sie auf der Seite Select trusted entity (Vertrauenswürdige Entität auswählen) wie folgt vor:
-
Wählen Sie im Abschnitt Trusted entity type (Typ der vertrauenswürdigen Entität) die Option Web identity (Web-Identität) aus.
-
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 URLs angezeigt werden, überprüfen Sie die Voraussetzungen.
-
Wählen Sie für Audience (Zielgruppe)
sts.amazonaws.com. -
Wählen Sie Weiter aus.
-
-
Gehen Sie auf der Seite Berechtigungen hinzufügen wie folgt vor:
-
Geben Sie im Feld Filterrichtlinien AmazonS3CSIDriverPolicy ein.
Anmerkung
Diese Richtlinie wurde im vorherigen Abschnitt erstellt.
-
Aktivieren Sie das Kontrollkästchen links neben dem Ergebnis für
AmazonS3CSIDriverPolicy, das bei der Suche zurückgegeben wurde. -
Wählen Sie Weiter aus.
-
-
Gehen Sie auf der Seite Name, review, and create (Benennen, überprüfen und erstellen) wie folgt vor:
-
Geben Sie unter Rollenname einen eindeutigen Namen für Ihre Rolle ein, beispielsweise AmazonEKS_S3_CSI_DriverRole.
-
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.
-
Wählen Sie Create role (Rolle erstellen) aus.
-
-
Nachdem die Rolle erstellt wurde, wählen Sie die Rolle in der Konsole aus, um sie zur Bearbeitung zu öffnen.
-
Wählen Sie die Registerkarte Trust Relationships (Vertrauensstellungen) und dann Edit trust policy (Vertrauensrichtlinie bearbeiten) aus.
-
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 den
region-codedurch die AWS-Region, in der sich Ihr Cluster befindet. Ersetzen SieEXAMPLED539D4633E53DE1B71EXAMPLEmit der OIDC-Anbieter-ID Ihres Clusters."oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa" -
Stellen Sie sicher, dass der
Condition-Operator auf"StringEquals"eingestellt ist. -
Wählen Sie Update Policy (Richtlinie aktualisieren) aus, um den Vorgang abzuschließen.
AWS-CLI
-
Zeigen Sie die OIDC-Anbieter-URL Ihres Clusters an. Ersetzen Sie
my-clusterdurch den Namen Ihres Clusters. Wenn die Ausgabe des BefehlsNoneist, überprüfen Sie die Voraussetzungen.aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output textEine Beispielausgabe sieht wie folgt aus.
https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE -
Erstellen Sie die IAM-Rolle und weisen Sie dem Kubernetes-Dienstkonto die
AssumeRoleWithWebIdentity-Aktion zu.-
Kopieren Sie den folgenden Inhalt in eine Datei namens
aws-s3-csi-driver-trust-policy.json. Ersetzen Sie111122223333durch Ihre Konto-ID. Ersetzen SieEXAMPLED539D4633E53DE1B71EXAMPLEundregion-codedurch den im vorherigen Schritt zurückgegebenen Werte.{ "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" } } } ] } -
Erstellen Sie die -Rolle. Sie können
AmazonEKS_S3_CSI_DriverRolein einen anderen Namen ändern. In diesem Fall ist es jedoch wichtig, dass Sie die Änderung auch in den nachfolgenden Schritten vornehmen.aws iam create-role \ --role-name AmazonEKS_S3_CSI_DriverRole \ --assume-role-policy-document file://"aws-s3-csi-driver-trust-policy.json"
-
-
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_DriverRoleAnmerkung
Die IAM-Richtlinie
AmazonS3CSIDriverPolicywurde im vorherigen Abschnitt erstellt. -
Überspringen Sie diesen Schritt, wenn Sie den Treiber als Amazon-EKS-Add-On installieren. Für selbstverwaltete Installationen des Treibers erstellen Sie Kubernetes-Servicekonten, die mit der ARN der von Ihnen erstellten IAM-Rolle vermerkt sind.
-
Speichern Sie den folgenden Inhalt in einer Datei mit dem Namen
mountpoint-s3-service-account.yaml. Ersetzen Sie111122223333durch 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 -
Erstellen Sie das Kubernetes-Servicekonto in Ihrem Cluster. Das Kubernetes- Servicekonto (
mountpoint-s3-csi-controller-sa) ist mit der von Ihnen erstellten IAM-Rolle mit dem NamenAmazonEKS_S3_CSI_DriverRolevermerkt.kubectl apply -f mountpoint-s3-service-account.yamlAnmerkung
Wenn Sie das Plugin in diesem Verfahren bereitstellen, wird es erstellt und für die Verwendung eines Servicekontos mit dem Namen
s3-csi-driver-sakonfiguriert.
-
Schritt 3: CSI-Treiber für Mountpoint für Amazon S3 installieren
Sie können den CSI-Treiber für Mountpoint für Amazon S3 ü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 CSI-Treiber für Mountpoint für Amazon S3 als selbstverwaltete Installation installieren. Anweisungen zur Durchführung einer selbstverwalteten Installation finden Sie unter Installation
Ab Version v1.8.0 können Sie Taints konfigurieren, die für die Pods des CSI-Treibers toleriert werden sollen. Geben Sie dazu entweder einen benutzerdefinierten Satz von Taints an, die mit node.tolerations toleriert werden sollen, oder tolerieren Sie alle Taints mit node.tolerateAllTaints. Weitere Informationen finden Sie unter Taints und Toleranzen
eksctl
So fügen Sie das CSI-Add-On von Amazon S3 mit eksctl hinzu
Führen Sie den folgenden Befehl aus. Ersetzen Sie my-cluster durch den Namen Ihres Clusters, 111122223333 durch Ihre Konto-ID und AmazonEKS_S3_CSI_DriverRole durch den 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. Stellen Sie vor der Angabe dieser Option 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-Onseksctl-Dokumentation. Weitere Informationen zur Amazon-EKS-Kubernetes-Feldverwaltung finden Sie unter Felder für die Anpassung von Amazon-EKS-Add-On festlegen.
Sie können eksctl über Konfigurationsdateien anpassen. Weitere Informationen finden Sie unter Arbeiten mit Konfigurationswerteneksctl-Dokumentation. Das folgende Beispiel zeigt, wie alle Taints toleriert werden.
# config.yaml ... addons: - name: aws-mountpoint-s3-csi-driver serviceAccountRoleARN: arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole configurationValues: |- node: tolerateAllTaints: true
AWS-Managementkonsole
-
Öffnen Sie die Amazon-EKS-Konsole
. -
Wählen Sie im linken Navigationsbereich Cluster aus.
-
Wählen Sie den Namen des Clusters, für den Sie den CSI-Treiber für Mountpoint für Amazon S3 konfigurieren möchten.
-
Wählen Sie die Registerkarte Add-ons.
-
Wählen Sie Weitere Add-Ons erhalten.
-
Führen Sie auf der Seite Add-Ons auswählen die folgenden Schritte aus:
-
Aktivieren Sie im Abschnitt Amazon-EKS-Add-Ons das Kontrollkästchen CSI-Treiber für Mountpoint für Amazon S3.
-
Wählen Sie Weiter aus.
-
-
Gehen Sie auf der Seite Konfigurieren ausgewählter Add-Ons-Einstellungen wie folgt vor:
-
Wählen Sie die Version aus, die Sie verwenden möchten.
-
Wählen Sie für IAM-Rolle auswählen den Namen einer IAM-Rolle aus, an die Sie die IAM-Richtlinie „CSI-Treiber für Mountpoint für Amazon S3“ angefügt haben.
-
(Optional) Aktualisieren Sie die Methode zur Konfliktlösung, nachdem Sie die Optionalen Konfigurationseinstellungen erweitert haben Wenn Sie Überschreiben auswählen, können eine oder mehrere Einstellungen für das vorhandene Add-On mit den Amazon-EKS-Add-On-Einstellungen überschrieben werden. Wenn Sie diese Option nicht aktivieren und ein Konflikt mit Ihren vorhandenen Einstellungen vorliegt, schlägt der Vorgang fehl. Sie können die sich daraus ergebende Fehlermeldung heranziehen, um den Konflikt zu beheben. Stellen Sie vor der Auswahl dieser Option sicher, dass das Amazon-EKS-Add-On keine Einstellungen verwaltet, die Sie selbst verwalten müssen.
-
(Optional) Konfigurieren Sie Toleranzen im Feld Konfigurationswerte, nachdem Sie die Optionalen Konfigurationseinstellungen erweitert haben.
-
Wählen Sie Weiter aus.
-
-
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 den Mountpoint für das Amazon-S3-CSI-Add-On mit der AWS-CLI hinzu
Führen Sie den folgenden Befehl aus. Ersetzen Sie my-cluster durch den Namen Ihres Clusters, 111122223333 durch Ihre Konto-ID und AmazonEKS_S3_CSI_DriverRole durch den 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 --configuration-values-Flag anpassen. Das folgende alternative Beispiel veranschaulicht, wie alle Taints toleriert werden.
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 mit lediglich einem Bucket-Namen konfigurieren. Anweisungen zur Konfiguration von Mountpoint für Amazon S3 finden Sie unter Konfiguration von Mountpoint für Amazon S3
Schritt 5: Beispielanwendung bereitstellen
Sie können die statische Bereitstellung des Treibers in einem vorhandenen Amazon S3-Bucket einsetzen. Weitere Informationen finden Sie unter Statische Bereitstellung