Stockez des données avec l'interface Web Amazon S3 - Amazon EKS

Aidez à améliorer cette page

Vous souhaitez contribuer à ce guide de l'utilisateur ? Faites défiler cette page vers le bas et sélectionnez Modifier cette page sur GitHub. Vos contributions aideront à améliorer notre guide de l'utilisateur pour tout le monde.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Stockez des données avec l'interface Web Amazon S3

Avec le Mountpointpilote Amazon S3 Container Storage Interface (CSI), vos Kubernetes applications peuvent accéder aux objets Amazon S3 via une interface de système de fichiers, ce qui permet d'obtenir un débit agrégé élevé sans modifier le code de l'application. Conçu Mountpointpour Amazon S3, le CSI pilote présente un compartiment Amazon S3 sous la forme d'un volume accessible aux conteneurs d'Amazon EKS et aux Kubernetes clusters autogérés. Cette rubrique explique comment déployer le CSI pilote Mountpoint pour Amazon S3 sur votre EKS cluster Amazon.

Considérations
  • Le CSI pilote Mountpoint pour Amazon S3 n'est actuellement pas compatible avec les images de conteneur basées sur Windows.

  • Le CSI pilote Mountpoint pour Amazon S3 n'est pas pris en charge AWS Fargate. Toutefois, les conteneurs exécutés sur Amazon EC2 (soit avec AmazonEKS, soit avec une Kubernetes installation personnalisée) sont pris en charge.

  • Le CSI pilote Mountpoint for Amazon S3 ne prend en charge que le provisionnement statique. L'allocation dynamique, ou la création de nouveaux compartiments, n'est pas prise en charge.

    Note

    Le provisionnement statique fait référence à l'utilisation d'un compartiment Amazon S3 existant spécifié comme étant bucketName volumeAttributes dans l'PersistentVolumeobjet. Pour plus d'informations, consultez Allocation statique sur GitHub.

  • Les volumes montés avec le CSI pilote Mountpoint pour Amazon S3 ne prennent pas en charge toutes les fonctionnalités POSIX du système de fichiers. Pour plus de détails sur le comportement du système de fichiers, consultez Mountpoint pour le comportement du système de fichiers Amazon S3 sur GitHub.

Prérequis
  • Un fournisseur AWS Identity and Access Management (IAM) OpenID Connect (OIDC) existant pour votre cluster. Pour déterminer si vous en avez déjà un, ou pour en créer un, consultez Créez un IAM OIDC fournisseur pour votre cluster.

  • Version 2.12.3 ou ultérieure de l' AWS CLI installation et de la configuration sur votre appareil ou. AWS CloudShell

  • L'outil de ligne de commande kubectl est installé sur votre appareil ou AWS CloudShell. La version peut être identique à la version Kubernetes de votre cluster ou être maximum une version mineure antérieure ou ultérieure. Par exemple, si la version de votre cluster est 1.29, vous pouvez utiliser la version kubectl 1.28, 1.29 ou 1.30. Pour installer ou mettre à niveau kubectl, veuillez consulter Configurez kubectl et eksctl.

Création d'une IAM politique

Le CSI pilote Mountpoint pour Amazon S3 nécessite des autorisations Amazon S3 pour interagir avec votre système de fichiers. Cette section explique comment créer une IAM politique qui accorde les autorisations nécessaires.

L'exemple de politique suivant suit les recommandations IAM d'autorisation pourMountpoint. Vous pouvez également utiliser la politique AWS gérée AmazonS3FullAccess, mais cette politique gérée accorde plus d'autorisations que nécessaireMountpoint.

Pour plus d'informations sur les autorisations recommandées pourMountpoint, consultez la section MountpointIAMAutorisations activéesGitHub.

Pour créer une IAM politique à l'aide de la IAM console
  1. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation de gauche, choisissez Politiques.

  3. Sur la page Politiques, choisissez Créer une politique.

  4. Pour l'éditeur de politiques, sélectionnez JSON.

  5. Sous Éditeur de politique, copiez et collez ce qui suit :

    Important

    Remplacez amzn-s3-demo-bucket1 par votre propre nom de compartiment Amazon S3.

    { "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/*" ] } ] }

    Les compartiments de répertoire, introduits avec la classe de stockage Amazon S3 Express One Zone, utilisent un mécanisme d'authentification différent de celui des compartiments à usage général. Au lieu d'utiliser s3:* des actions, vous devez utiliser l's3express:CreateSessionaction. Pour plus d'informations sur les compartiments de répertoire, consultez la section Buckets de répertoire dans le guide de l'utilisateur Amazon S3.

    Vous trouverez ci-dessous un exemple de politique de moindre privilège que vous utiliseriez pour un bucket de répertoire.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3express:CreateSession", "Resource": "arn:aws:s3express:aws-region:111122223333:bucket/amzn-s3-demo-bucket1--az_id--x-s3" } ] }
  6. Choisissez Suivant.

  7. Sur la page Vérifier et créer, donnez un nom à votre politique. Cet exemple de démonstration utilise le nom AmazonS3CSIDriverPolicy.

  8. Choisissez Create Policy (Créer une politique).

créer un rôle IAM ;

Le CSI pilote Mountpoint pour Amazon S3 nécessite des autorisations Amazon S3 pour interagir avec votre système de fichiers. Cette section explique comment créer un IAM rôle pour déléguer ces autorisations. Pour créer ce rôle, vous pouvez utiliser eksctl la IAM console ou le AWS CLI.

Note

La IAM politique AmazonS3CSIDriverPolicy a été créée dans la section précédente.

eksctl

Pour créer votre IAM rôle de CSI pilote Mountpoint pour Amazon S3 avec eksctl

Pour créer le IAM rôle et le compte Kubernetes de service, exécutez les commandes suivantes. Ces commandes associent également la AmazonS3CSIDriverPolicy IAM politique au rôle, annotent le compte de Kubernetes service (s3-csi-controller-sa) avec le nom de ressource Amazon du IAM rôle (ARN) et ajoutent le nom du compte de Kubernetes service à la politique de confiance du IAM rôle.

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
IAM console
Pour créer votre IAM rôle de CSI pilote Mountpoint pour Amazon S3 avec AWS Management Console
  1. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation de gauche, choisissez Rôles.

  3. Sur la page Rôles, choisissez Créer un rôle.

  4. Sur la page Select trusted entity (Sélectionnez une entité de confiance), procédez comme suit :

    1. Dans la section Trusted entity type (Type d'entité de confiance), sélectionnez Web identity (Identité web).

    2. Pour le fournisseur d'identité, choisissez le OpenID Connectfournisseur URL pour votre cluster (comme indiqué dans la section Vue d'ensemble sur AmazonEKS).

      Si ce URLs n'est pas le cas, consultez la section Conditions préalables.

    3. Pour Audience, choisissez sts.amazonaws.com.

    4. Choisissez Suivant.

  5. Sur la page Add permissions (Ajouter des autorisations), procédez comme suit :

    1. Dans la zone Filter policies (Politiques de filtre), saisissez AmazonS3CSIDriverPolicy.

      Note

      Cette politique a été créée dans la section précédente.

    2. Cochez la case à gauche du résultat AmazonS3CSIDriverPolicy renvoyé par la recherche.

    3. Choisissez Suivant.

  6. Sur la page Name, review, and create (Nommer, vérifier et créer), procédez comme suit :

    1. Pour Role name (Nom de rôle), saisissez un nom unique pour votre rôle, par exemple, AmazonEKS_S3_CSI_DriverRole.

    2. Sous Ajouter des balises (Facultatif), ajoutez des métadonnées au rôle en attachant les identifications sous forme de paires clé-valeur. Pour plus d'informations sur l'utilisation des balisesIAM, consultez les IAMressources relatives au balisage dans le guide de l'IAMutilisateur.

    3. Sélectionnez Créer un rôle.

  7. Une fois le rôle créé, choisissez le rôle dans la console pour l'ouvrir et le modifier.

  8. Sélectionnez l'onglet Trust relationships (Relations d'approbation), puis Edit trust policy (Modifier la politique d'approbation).

  9. Trouvez la ligne qui ressemble à ce qui suit :

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

    Ajoutez une virgule à la fin de la ligne précédente, puis ajoutez la ligne suivante. region-codeRemplacez-le par Région AWS celui dans lequel se trouve votre cluster. EXAMPLED539D4633E53DE1B71EXAMPLERemplacez-le par l'ID du OIDC fournisseur de votre cluster.

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-*"
  10. Remplacez l'opérateur Condition par "StringEquals" au lieu de "StringLike".

  11. Sélectionnez Update Trust Policy (Mettre à jour la politique d'approbation) pour terminer.

AWS CLI
Pour créer votre IAM rôle de CSI pilote Mountpoint pour Amazon S3 avec AWS CLI
  1. Consultez le OIDC fournisseur URL de votre cluster. Remplacez my-cluster par le nom de votre cluster. Si la sortie de la commande est None, consultez Prérequis.

    aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text

    L'exemple qui suit illustre un résultat.

    https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
  2. Créez le IAM rôle en accordant l'AssumeRoleWithWebIdentityaction au compte de Kubernetes service.

    1. Copiez le contenu suivant dans un fichier nommé aws-s3-csi-driver-trust-policy.json. Remplacez 111122223333 par votre ID de compte. Remplacez EXAMPLED539D4633E53DE1B71EXAMPLE et region-code par les valeurs renvoyées par l'étape précédente.

      { "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:s3-csi-*", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com" } } } ] }
    2. Créez le rôle. Vous pouvez changer le nom de AmazonEKS_S3_CSI_DriverRole. Dans ce cas, veillez à le changer également dans les étapes suivantes.

      aws iam create-role \ --role-name AmazonEKS_S3_CSI_DriverRole \ --assume-role-policy-document file://"aws-s3-csi-driver-trust-policy.json"
  3. Attachez la IAM politique créée précédemment au rôle à l'aide de la commande suivante.

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

    La IAM politique AmazonS3CSIDriverPolicy a été créée dans la section précédente.

  4. Ignorez cette étape si vous installez le pilote en tant que EKS module complémentaire Amazon. Pour les installations autogérées du pilote, créez des comptes de Kubernetes service annotés avec le ARN IAM rôle que vous avez créé.

    1. Enregistrez le contenu suivant dans un fichier nommé mountpoint-s3-service-account.yaml. Remplacez 111122223333 par votre ID de compte.

      --- 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. Créez le compte de service Kubernetes sur votre cluster. Le compte Kubernetes de service (mountpoint-s3-csi-controller-sa) est annoté avec le nom AmazonEKS_S3_CSI_DriverRole du IAM rôle que vous avez créé.

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

      Lorsque vous déployez le plugin dans cette procédure, il crée et est configuré pour utiliser un compte de service nommé s3-csi-driver-sa.

Installez le CSI pilote Mountpoint pour Amazon S3

Vous pouvez installer le CSI pilote Mountpoint pour Amazon S3 via le EKS module complémentaire Amazon. Vous pouvez utilisereksctl, le AWS Management Console, ou le AWS CLI pour ajouter le module complémentaire à votre cluster.

Vous pouvez éventuellement installer le Mountpoint CSI pilote Amazon S3 en tant qu'installation autogérée. Pour savoir comment procéder à une installation autogérée, consultez Installation sur GitHub.

eksctl
Pour ajouter le CSI module complémentaire Amazon S3 à l'aide de eksctl

Exécutez la commande suivante. my-clusterRemplacez-le par le nom de votre cluster, 111122223333 par votre identifiant de compte et AmazonEKS_S3_CSI_DriverRole par le nom du IAMrôle créé précédemment.

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

Si vous supprimez l'--forceoption et que l'un des paramètres du EKS module complémentaire Amazon entre en conflit avec vos paramètres existants, la mise à jour du EKS module complémentaire Amazon échoue et vous recevez un message d'erreur pour vous aider à résoudre le conflit. Avant de spécifier cette option, assurez-vous que le EKS module complémentaire Amazon ne gère pas les paramètres que vous devez gérer, car ces paramètres sont remplacés par cette option. Pour plus d'informations sur les autres options de ce paramètre, consultez Modules complémentaires dans la documentation eksctl. Pour plus d'informations sur la gestion des EKS Kubernetes champs Amazon, consultezDéterminez les champs que vous pouvez personnaliser pour les EKS modules complémentaires Amazon.

AWS Management Console
Pour ajouter le CSI module complémentaire Mountpoint pour Amazon S3 à l'aide du AWS Management Console
  1. Ouvrez la EKS console Amazon à l'adresse https://console.aws.amazon.com/eks/home#/clusters.

  2. Dans le panneau de navigation de gauche, choisissez Clusters.

  3. Choisissez le nom du cluster pour lequel vous souhaitez configurer le CSI module complémentaire Mountpoint pour Amazon S3.

  4. Choisissez l'onglet Modules complémentaires.

  5. Choisissez Obtenez plus de modules complémentaires.

  6. Sur la page Sélectionner des modules complémentaires, procédez comme suit :

    1. Dans la section Amazon EKS -addons, cochez la case Mountpointpour le CSI pilote Amazon S3.

    2. Choisissez Suivant.

  7. Sur la page Configurer les paramètres des modules complémentaires sélectionnés, procédez comme suit :

    1. Sélectionnez la version que vous souhaitez utiliser.

    2. Pour Sélectionner un IAM rôle, sélectionnez le nom d'un IAM rôle auquel vous avez associé Mountpoint la IAM politique de CSI pilote Amazon S3.

    3. (Facultatif) Vous pouvez développer les paramètres de configuration facultatifs. Si vous sélectionnez Override pour la méthode de résolution des conflits, un ou plusieurs paramètres du module complémentaire existant peuvent être remplacés par les paramètres du EKS module complémentaire Amazon. Si vous n'activez pas cette option et qu'il y a un conflit avec vos paramètres existants, l'opération échoue. Vous pouvez utiliser le message d'erreur qui en résulte pour résoudre le conflit. Avant de sélectionner cette option, assurez-vous que le EKS module complémentaire Amazon ne gère pas les paramètres que vous devez gérer vous-même.

    4. Choisissez Suivant.

  8. Sur la page Vérifier et ajouter, choisissez Créer. Une fois l'installation du module complémentaire terminée, vous pouvez voir le module complémentaire installé.

AWS CLI
Pour ajouter le CSI module complémentaire Mountpoint pour Amazon S3 à l'aide du AWS CLI

Exécutez la commande suivante. Remplacez my-cluster par le nom de votre cluster, 111122223333 par l'ID de votre compte, et AmazonEKS_S3_CSI_DriverRole par le nom du rôle créé précédemment.

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 Mountpoint pour Amazon S3

Dans la plupart des cas, vous pouvez configurer Mountpoint pour Amazon S3 avec seulement un nom de compartiment. Pour obtenir des instructions sur la configuration de Mountpoint pour Amazon S3, consultez Configuration de Mountpoint pour Amazon S3 sur GitHub.

Déployer un exemple d’application

Vous pouvez déployer l'allocation statique au pilote sur un compartiment Amazon S3 existant. Pour plus d'informations, consultez Allocation statique sur GitHub.

Supprimer Mountpoint pour le CSI pilote Amazon S3

Deux options s'offrent à vous pour supprimer un EKS module complémentaire Amazon.

  • Conservez les logiciels complémentaires sur votre cluster : cette option supprime EKS la gestion de tous les paramètres par Amazon. Cela empêche également Amazon de vous informer des mises EKS à jour et de mettre automatiquement à jour le EKS module complémentaire Amazon une fois que vous avez lancé une mise à jour. Toutefois, elle préserve le logiciel complémentaire sur votre cluster. Cette option fait du module complémentaire une installation autogérée, plutôt qu'un EKS module complémentaire Amazon. Avec cette option, il n'y a pas de temps d'arrêt pour le module complémentaire. Les commandes dans cette procédure utilisent cette option.

  • Supprimer complètement le logiciel complémentaire de votre cluster — Nous vous recommandons de supprimer le EKS module complémentaire Amazon de votre cluster uniquement si aucune ressource de votre cluster n'en dépend. Pour effectuer cette option, supprimez --preserve à partir de la commande que vous utilisez dans cette procédure.

Si un IAM compte est associé à l'IAMextension, celui-ci n'est pas supprimé.

Vous pouvez utiliser eksctl AWS Management Console, le ou AWS CLI pour supprimer le CSI module complémentaire Amazon S3.

eksctl
Pour supprimer le CSI module complémentaire Amazon S3 à l'aide de eksctl

Remplacez my-cluster avec le nom de votre cluster, puis exécutez la commande suivante.

eksctl delete addon --cluster my-cluster --name aws-mountpoint-s3-csi-driver --preserve
AWS Management Console
Pour supprimer le CSI module complémentaire Amazon S3 à l'aide du AWS Management Console
  1. Ouvrez la EKS console Amazon à l'adresse https://console.aws.amazon.com/eks/home#/clusters.

  2. Dans le panneau de navigation de gauche, choisissez Clusters.

  3. Choisissez le nom du cluster pour lequel vous souhaitez supprimer le EBS CSI module complémentaire Amazon.

  4. Choisissez l'onglet Modules complémentaires.

  5. Choisissez Mountpointle CSI pilote Amazon S3.

  6. Sélectionnez Remove (Supprimer).

  7. Dans la boîte de dialogue de confirmation Remove : aws-mountpoint-s 3-csi-driver, procédez comme suit :

    1. Si vous souhaitez qu'Amazon arrête EKS de gérer les paramètres du module complémentaire, sélectionnez Conserver sur le cluster. Faites ceci si vous voulez retenir le logiciel du module complémentaire sur votre cluster. Ceci afin que vous puissiez gérer vous-même tous les paramètres du module complémentaire.

    2. Saisissez aws-mountpoint-s3-csi-driver.

    3. Sélectionnez Remove (Retirer).

AWS CLI
Pour supprimer le CSI module complémentaire Amazon S3 à l'aide du AWS CLI

Remplacez my-cluster avec le nom de votre cluster, puis exécutez la commande suivante.

aws eks delete-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver --preserve