Stockez un système de fichiers élastique avec Amazon EFS - Amazon EKS

Aidez à améliorer cette page

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.

Vous souhaitez contribuer à ce guide de l'utilisateur ? Choisissez le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page. 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 un système de fichiers élastique avec Amazon EFS

Amazon Elastic File System (Amazon EFS) fournit un stockage de fichiers entièrement élastique sans serveur pour vous permettre de partager des données de fichiers sans provisionner ni gérer la capacité et les performances de stockage. Le pilote Amazon EFS Container Storage Interface (CSI) fournit une interface CSI qui permet Kubernetes clusters exécutés AWS pour gérer le cycle de vie des systèmes de fichiers Amazon EFS. Cette rubrique vous montre comment déployer le pilote Amazon EFS CSI dans votre cluster Amazon EKS.

Considérations

  • Le pilote Amazon EFS CSI n'est pas compatible avec les images de conteneur basées sur Windows.

  • Vous ne pouvez pas utiliser le provisionnement dynamique pour les volumes persistants avec les nœuds Fargate, mais vous pouvez utiliser le provisionnement statique.

  • Le provisionnement dynamique nécessite la version 1.2 ou ultérieure du pilote. Vous pouvez utiliser le provisionnement statique pour les volumes persistants en utilisant la version 1.1 du pilote sur n'importe quelle version de cluster Amazon EKS prise en charge (voirComprenez le Kubernetes cycle de vie des versions sur EKS).

  • La version 1.3.2 ou ultérieure de ce pilote prend en charge l'architecture Arm64, y compris les instances basées sur Amazon EC2 Graviton.

  • La version 1.4.2 ou ultérieure de ce pilote prend en charge l'utilisation de FIPS pour le montage de systèmes de fichiers.

  • Prenez note des quotas de ressources pour Amazon EFS. Par exemple, un quota de 1 000 points d'accès peut être créé pour chaque système de fichiers Amazon EFS. Pour plus d'informations, consultez les quotas de ressources Amazon EFS que vous ne pouvez pas modifier.

  • À partir de la version 2.0.0, ce pilote est passé de l'utilisation stunnel à celle efs-proxy des connexions TLS. Lorsqu'il efs-proxy est utilisé, il ouvre un nombre de threads égal à un plus le nombre de cœurs pour le nœud sur lequel il s'exécute.

  • Le pilote Amazon EFS CSI n'est pas compatible avec les nœuds hybrides Amazon EKS.

Prérequis

  • Une solution existante de gestion des AWS identités et des accès (IAM) OpenID Connect (OIDC) fournisseur pour votre cluster. Pour déterminer si vous en avez déjà un, ou pour en créer un, consultez Créer un IAM OIDC fournisseur pour votre cluster.

  • Version 2.12.3 ou version ultérieure 1.27.160 ou version ultérieure de l'interface de ligne de AWS commande (AWS CLI) installée et configurée sur votre appareil ou AWS CloudShell. Pour vérifier votre version actuelle, utilisez aws --version | cut -d / -f2 | cut -d ' ' -f1. Des gestionnaires de packages tels que yumapt-get, ou Homebrew for macOS ont souvent plusieurs versions de retard sur la dernière version de la AWS CLI. Pour installer la dernière version, consultez la section Installation et configuration rapide avec aws configure dans le Guide de l'utilisateur de l'interface de ligne de AWS commande. La version de la AWS CLI installée AWS CloudShell peut également avoir plusieurs versions de retard par rapport à la dernière version. Pour le mettre à jour, consultez la section Installation de la AWS CLI dans votre répertoire de base dans le guide de AWS CloudShell l'utilisateur.

  • L'outil de ligne de commande kubectl est installé sur votre appareil ou AWS CloudShell. La version peut être identique ou supérieure à une version mineure antérieure ou ultérieure à Kubernetes version de votre cluster. 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.

Note

A Pod l'exécution sur Fargate permet de monter automatiquement un système de fichiers Amazon EFS, sans nécessiter d'étapes d'installation manuelle du pilote.

Étape 1 : Créer un rôle IAM

Le pilote CSI Amazon EFS nécessite des autorisations IAM pour interagir avec votre système de fichiers. Créez un rôle IAM et associez-y la politique AWS gérée requise. Pour implémenter cette procédure, vous pouvez utiliser l'un des outils suivants :

Note

Les étapes spécifiques de cette procédure sont destinées à l'utilisation du pilote en tant que module complémentaire d'Amazon EKS. Pour plus de détails sur les installations autogérées, voir Configurer l'autorisation du pilote sur GitHub.

eksctl

Exécutez les commandes suivantes pour créer un rôle IAM aveceksctl. Remplacez my-cluster par le nom de votre cluster et AmazonEKS_EFS_CSI_DriverRole par le nom de votre rôle.

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

Exécutez la commande suivante pour créer un rôle IAM avec AWS Management Console.

  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet 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 OpenID Connect URL du fournisseur de votre cluster (comme indiqué dans la section Vue d'ensemble dans Amazon EKS).

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

    2. Cochez la case à gauche du AmazonEFSCSIDriverPolicy renvoyé dans 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_EFS_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 balises dans IAM, consultez la rubrique Balisage des ressources IAM dans le Guide de l'utilisateur IAM.

    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 à la ligne suivante :

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

    Ajoutez la ligne suivante au-dessus de la ligne précédente. Remplacez region-code par la AWS région dans laquelle se trouve votre cluster. EXAMPLED539D4633E53DE1B71EXAMPLERemplacez-le par l'ID du fournisseur OIDC de votre cluster.

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:efs-csi-*",
  10. Modifiez l'opérateur Condition de "StringEquals" en "StringLike".

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

AWS CLI

Exécutez les commandes suivantes pour créer un rôle IAM avec la AWS CLI.

  1. Consultez l'URL du fournisseur OIDC 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 rôle IAM qui accorde l'action AssumeRoleWithWebIdentity.

    1. Copiez le contenu suivant dans un fichier nommé aws-efs-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:efs-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_EFS_CSI_DriverRole. Dans ce cas, veillez à le changer également dans les étapes suivantes.

      aws iam create-role \ --role-name AmazonEKS_EFS_CSI_DriverRole \ --assume-role-policy-document file://"aws-efs-csi-driver-trust-policy.json"
  3. Associez la politique AWS gérée requise au rôle à l'aide de la commande suivante.

    aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \ --role-name AmazonEKS_EFS_CSI_DriverRole

Étape 2 : obtenir le pilote Amazon EFS CSI

Nous vous recommandons d'installer le pilote CSI Amazon EFS en utilisant le module complémentaire Amazon EKS. Pour ajouter un module complémentaire Amazon EKS à votre cluster, voir Création d'un module complémentaire Amazon EKS. Pour plus d'informations sur les modules complémentaires, voir Modules complémentaires Amazon EKS. Si vous ne parvenez pas à utiliser le module complémentaire Amazon EKS, nous vous encourageons à signaler les raisons pour lesquelles vous ne pouvez pas utiliser le module complémentaire Amazon EKS dans le GitHub référentiel de feuilles de route pour les conteneurs.

Sinon, si vous souhaitez une installation autogérée du pilote Amazon EFS CSI, consultez la section Installation sur GitHub.

Étape 3 : Créer un système de fichiers Amazon EFS

Pour créer un système de fichiers Amazon EFS, consultez Créer un système de fichiers Amazon EFS pour Amazon EKS sur GitHub.

Étape 4 : Déployer un exemple d'application

Vous pouvez déployer une variété d'applications types et les modifier selon vos besoins. Pour plus d'informations, voir Exemples sur GitHub.