Aidez à améliorer cette page
Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.
Déployer le pilote FSx pour Lustre
Cette rubrique vous montre comment déployer le pilote CSI FSx pour Lustre sur votre cluster Amazon EKS et vérifier qu’il fonctionne. Nous vous recommandons d'utiliser la dernière version du pilote. Pour les versions disponibles, consultez la Matrice de compatibilité des spécifications CSI
Note
Le pilote n’est pas pris en charge sur Fargate ou sur les nœuds hybrides Amazon EKS.
Pour la description détaillée des paramètres disponibles et des exemples complets démontrant les fonctions du pilote, consultez le projet de pilote FSx for Lustre Container Storage Interface (CSI)
Prérequis
-
Un cluster existant.
-
Le module complémentaire Amazon FSx CSI Driver EKS nécessite l’agent d’identité du pod EKS pour l’authentification. Sans ce composant, le module complémentaire échouera avec l’erreur
Amazon EKS Pod Identity agent is not installed in the cluster, empêchant les opérations sur le volume. Installez l’agent d’identité du pod avant ou après le déploiement du module complémentaire Pilote CSI FSx. Pour de plus amples informations, consultez Configurer l’agent de l’identité du pod Amazon EKS. -
Version
2.12.3ou ultérieure ou version1.27.160ou ultérieure de l’interface de la ligne de commande AWS (AWS CLI) installée et configurée sur votre appareil ou dans AWS CloudShell. Pour vérifier votre version actuelle, utilisezaws --version | cut -d / -f2 | cut -d ' ' -f1. Les gestionnaires de package tels queyum,apt-getou Homebrew pour macOS ont souvent plusieurs versions de retard par rapport à la dernière version de l’AWS CLI. Pour installer la dernière version, consultez les sections Installation et Configuration rapide avec aws configure du Guide de l’utilisateur de l’interface de la ligne de commande AWS. La version de l’AWS CLI installée dans AWS CloudShell peut également être plusieurs versions derrière la dernière version. Pour la mettre à jour, consultez la section Installation de l’AWS CLI dans votre répertoire personnel dans le Guide de l’utilisateur AWS CloudShell. -
Version
0.214.0ou ultérieure de l’outil de ligne de commandeeksctlinstallée sur votre appareil ou AWS CloudShell. Pour installer ou mettre à joureksctl, veuillez consulter Installationdans la documentation de eksctl. -
L’outil de ligne de commande
kubectlest installé sur votre appareil ou dans AWS CloudShell. La version peut correspondre à celle utilisée par votre cluster Kubernetes, ou différer d’au plus une version mineure, qu’elle soit antérieure ou plus récente. Par exemple, si la version de votre cluster est1.29, vous pouvez utiliser la versionkubectl1.28,1.29ou1.30. Pour installer ou mettre à niveaukubectl, veuillez consulter Configuration de kubectl et eksctl.
Étape 1 : Créer un rôle IAM
Le plug-in Amazon FSx CSI nécessite des autorisations IAM pour effectuer des appels vers des API AWS en votre nom.
Note
Les pods auront accès aux autorisations attribuées au rôle IAM, sauf si vous bloquez l’accès à IMDS. Pour de plus amples informations, consultez Sécuriser les clusters Amazon EKS avec les bonnes pratiques.
La procédure suivante vous montre comment créer un rôle IAM et y associer la politique gérée par AWS.
-
Créez un rôle IAM et associez la politique gérée AWS à l’aide de la commande suivante. Remplacez
my-clusterpar le nom du cluster que vous souhaitez utiliser. La commande déploie une pile CloudFormation AWS qui crée un rôle IAM et y associe la politique IAM.eksctl create iamserviceaccount \ --name fsx-csi-controller-sa \ --namespace kube-system \ --cluster my-cluster \ --role-name AmazonEKS_FSx_CSI_DriverRole \ --role-only \ --attach-policy-arn arn:aws:iam::aws:policy/AmazonFSxFullAccess \ --approveVous verrez plusieurs lignes de sortie lorsque le compte de service sera créé. Les dernières lignes de sortie sont similaires à celle de l'exemple suivant.
[ℹ] 1 task: { 2 sequential sub-tasks: { create IAM role for serviceaccount "kube-system/fsx-csi-controller-sa", create serviceaccount "kube-system/fsx-csi-controller-sa", } } [ℹ] building iamserviceaccount stack "eksctl-my-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa" [ℹ] deploying stack "eksctl-my-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa" [ℹ] waiting for CloudFormation stack "eksctl-my-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa" [ℹ] created serviceaccount "kube-system/fsx-csi-controller-sa"Notez le nom de la pile AWS CloudFormation qui a été déployée. Dans l'exemple de sortie ci-dessus, la pile est nommée
eksctl-my-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa.
Maintenant que vous avez créé le rôle IAM du pilote CSI Amazon FSx, vous pouvez passer à la section suivante. Lorsque vous déployez le module complémentaire avec ce rôle IAM, il crée et est configuré pour utiliser un compte de service nommé fsx-csi-controller-sa. Le compte de service est lié à un Kubernetes clusterrole auquel sont attribuées les autorisations Kubernetes requises.
Étape 2 : installer le pilote CSI Amazon FSx
Nous vous recommandons d’installer le pilote Amazon FSx CSI via le module complémentaire Amazon EKS afin d’améliorer la sécurité et de réduire la charge de travail. Pour ajouter un module complémentaire Amazon EKS à votre cluster, voir Créer un module complémentaire Amazon EKS. Pour plus d'informations sur les modules complémentaires, voir Modules complémentaires Amazon EKS.
Important
Les installations préexistantes du pilote Amazon FSx CSI dans le cluster peuvent entraîner des échecs d’installation des modules complémentaires. Lorsque vous essayez d’installer la version complémentaire Amazon EKS alors qu’un pilote CSI FSx non EKS existe, l’installation échoue en raison de conflits de ressources. Utilisez le drapeau OVERWRITE lors de l’installation pour résoudre ce problème.
aws eks create-addon --addon-name aws-fsx-csi-driver --cluster-name my-cluster --resolve-conflicts OVERWRITE
Sinon, si vous souhaitez installer vous-même le pilote CSI Amazon FSx, consultez la section Installation
Étape 3 : déployer une classe de stockage, une demande de volume persistant et un exemple d’application
Cette procédure utilise le référentiel GitHub du pilote Container Storage Interface (CSI) FSx pour Lustre
-
Notez le groupe de sécurité de votre cluster. Vous pouvez le voir dans la AWS Management Console sous la section Mise en réseau ou en utilisant la commande AWS CLI suivante. Remplacez
my-clusterpar le nom du cluster que vous souhaitez utiliser.aws eks describe-cluster --name my-cluster --query cluster.resourcesVpcConfig.clusterSecurityGroupId -
Créez un groupe de sécurité pour votre système de fichiers Amazon FSx en fonction des critères indiqués dans Groupes de sécurité Amazon VPC dans le Guide de l'utilisateur Amazon FSx pour Lustre. Pour le VPC, sélectionnez le VPC de votre cluster, comme indiqué dans la section Mise en réseau. Pour « les groupes de sécurité associés à vos clients Lustre », utilisez le groupe de sécurité de votre cluster. Vous pouvez juste laisser les règles sortantes pour autoriser Tout le trafic.
-
Téléchargez le manifeste de la classe de stockage à l'aide de la commande suivante.
curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/storageclass.yaml -
Modifiez la section des paramètres du fichier
storageclass.yaml. Remplacez chaque valeur d’exemple par vos propres valeurs.parameters: subnetId: subnet-0eabfaa81fb22bcaf securityGroupIds: sg-068000ccf82dfba88 deploymentType: PERSISTENT_1 automaticBackupRetentionDays: "1" dailyAutomaticBackupStartTime: "00:00" copyTagsToBackups: "true" perUnitStorageThroughput: "200" dataCompressionType: "NONE" weeklyMaintenanceStartTime: "7:09:00" fileSystemTypeVersion: "2.12"-
subnetId: l’ID du sous-réseau dans lequel le système de fichiers Amazon FSx pour Lustre doit être créé. Amazon FSx pour Lustre n’est pas pris en charge dans toutes les zones de disponibilité. Ouvrez la console Amazon FSx for Lustre à l'adresse https://console.aws.amazon.com/fsx/pour confirmer que le sous-réseau que vous souhaitez utiliser se trouve dans une zone de disponibilité prise en charge. Le sous-réseau peut inclure vos nœuds, ou peut être un sous-réseau ou un VPC différent. -
Vous pouvez rechercher les sous-réseaux de nœuds dans la AWS Management Console en sélectionnant le groupe de nœuds sous la section Calcul.
-
Si le sous-réseau que vous spécifiez n’est pas le même que celui dans lequel vous avez des nœuds, vos VPC doivent être connectés et vous devez vous assurer que les ports nécessaires sont ouverts dans vos groupes de sécurité.
-
-
securityGroupIds: l’ID du groupe de sécurité que vous avez créé pour le système de fichiers. -
deploymentType(facultatif) : le type de déploiement du système de fichiers. Les valeurs valides sontSCRATCH_1,SCRATCH_2,PERSISTENT_1etPERSISTENT_2. Pour plus d'informations sur les types de déploiement, voir Créer votre système de fichiers Amazon FSx for Lustre. -
autres paramètres (facultatif) – Pour plus d'informations sur les autres paramètres, consultez Modifier la StorageClass
sur GitHub.
-
-
Créez le manifeste de la classe de stockage.
kubectl apply -f storageclass.yamlL'exemple qui suit illustre un résultat.
storageclass.storage.k8s.io/fsx-sc created -
Téléchargez le manifeste de revendication de volume persistant.
curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/claim.yaml -
(Facultatif) Modifiez le fichier
claim.yaml. Remplacez1200Gipar l'une des valeurs d'incrément ci-dessous, en fonction de vos besoins de stockage et dudeploymentTypeque vous avez sélectionné à l'étape précédente.storage: 1200Gi-
SCRATCH_2etPERSISTENT–1.2 TiB,2.4 TiBou des incréments de 2,4 Tio au-dessus de 2,4 Tio. -
SCRATCH_1–1.2 TiB,2.4 TiB,3.6 TiBou des incréments de 3,6 Tio au-dessus de 3,6 Tio.
-
-
Créez la revendication de volume persistant.
kubectl apply -f claim.yamlL'exemple qui suit illustre un résultat.
persistentvolumeclaim/fsx-claim created -
Vérifiez que le système de fichiers est approvisionné.
kubectl describe pvcL'exemple qui suit illustre un résultat.
Name: fsx-claim Namespace: default StorageClass: fsx-sc Status: Bound [...]Note
Le
Statuspeut indiquerPendingpendant 5-10 minutes avant de devenirBound. Ne passez pas à l’étape suivante tant que leStatusn’est pasBound. Si leStatusaffichePendingpendant plus de 10 minutes, utilisez des messages d'avertissement dans lesEventscomme référence afin de résoudre tout problème. -
Déployez un exemple d'application
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/pod.yaml -
Vérifiez que l'exemple d'application est en cours d'exécution.
kubectl get podsL'exemple qui suit illustre un résultat.
NAME READY STATUS RESTARTS AGE fsx-app 1/1 Running 0 8s -
Vérifiez que le système de fichiers est correctement monté par l'application.
kubectl exec -ti fsx-app -- df -hL'exemple qui suit illustre un résultat.
Filesystem Size Used Avail Use% Mounted on overlay 80G 4.0G 77G 5% / tmpfs 64M 0 64M 0% /dev tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup 192.0.2.0@tcp:/abcdef01 1.1T 7.8M 1.1T 1% /data /dev/nvme0n1p1 80G 4.0G 77G 5% /etc/hosts shm 64M 0 64M 0% /dev/shm tmpfs 6.9G 12K 6.9G 1% /run/secrets/kubernetes.io/serviceaccount tmpfs 3.8G 0 3.8G 0% /proc/acpi tmpfs 3.8G 0 3.8G 0% /sys/firmware -
Vérifiez que les données ont été écrites sur le système de fichiers FSx for Lustre par l'exemple d'application.
kubectl exec -it fsx-app -- ls /dataL'exemple qui suit illustre un résultat.
out.txtCet exemple de sortie signifie que l'exemple d'application a réussi à écrire le fichier
out.txtdans le système de fichiers.
Note
Avant de supprimer le cluster, veillez à supprimer le système de fichiers FSx for Lustre. Pour de plus d'informations, veuillez consulter Nettoyage des ressources dans le Guide de l'utilisateur FSx for Lustre.
Optimisation des performances pour FSx pour Lustre
Lorsque vous utilisez FSx pour Lustre avec Amazon EKS, vous pouvez optimiser les performances en appliquant les réglages Lustre lors de l’initialisation des nœuds. L’approche recommandée consiste à utiliser les données utilisateur du modèle de lancement afin de garantir une configuration cohérente sur tous les nœuds.
Ces accordages comprennent :
-
Optimisations du réseau et du RPC
-
Gestion du module Lustre
-
Réglages LRU (Lock Resource Unit)
-
Paramètres de contrôle du cache client
-
Commandes RPC pour OST et MDC
Pour obtenir des instructions détaillées sur la mise en œuvre de ces réglages de performance :
-
Pour optimiser les performances des nœuds standard (non EFA), consultez Optimiser les performances d’Amazon FSx pour Lustre sur les nœuds (non EFA) pour obtenir le script complet qui peut être ajouté aux données utilisateur de votre modèle de lancement.
-
Pour optimiser les performances des nœuds compatibles EFA, consultez Optimiser les performances d’Amazon FSx pour Lustre sur les nœuds (EFA).