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éfinissez quels pods utilisent AWS Fargate lors de leur lancement
Avant de planifier des pods sur Fargate dans votre cluster, vous devez définir au moins un profil Fargate qui spécifie quels pods utilisent Fargate lors de leur lancement.
En tant qu’administrateur, vous pouvez utiliser un profil Fargate pour déclarer quels pods s’exécutent sur Fargate. Vous pouvez faire cela via les sélecteurs du profil. Vous pouvez ajouter jusqu'à cinq sélecteurs à chaque profil. Chaque sélecteur doit contenir un espace de noms. Le sélecteur peut également inclure des étiquettes. Le champ de label se compose de plusieurs paires clé-valeur facultatives. Les pods qui correspondent à un sélecteur sont programmés sur Fargate. Les pods sont associés à l'aide d'un espace de noms et des étiquettes spécifiées dans le sélecteur. Si un sélecteur d’espace de noms est défini sans étiquettes, Amazon EKS tente de planifier tous les pods qui s’exécutent dans cet espace de noms sur Fargate à l’aide du profil. Si un pod à planifier correspond à l’un des sélecteurs du profil Fargate, ce pod est planifié sur Fargate.
Si un pod correspond à plusieurs profils Fargate, vous pouvez spécifier le profil utilisé par le pod en ajoutant le label Kubernetes suivant à la spécification du pod : eks.amazonaws.com/fargate-profile: my-fargate-profile. Le Pod doit correspondre à un sélecteur dans ce profil pour être planifié sur Fargate. Les règles d’affinité/anti-affinité Kubernetes ne s’appliquent pas et ne sont pas nécessaires avec les pods Amazon EKS Fargate.
Lorsque vous créez un profil Fargate, vous devez spécifier un rôle d’exécution de pod. Ce rôle d'exécution concerne les composants Amazon EKS qui s'exécutent sur l'infrastructure Fargate utilisant le profil. Il est ajouté au contrôle d’accès basé sur les rôleskubelet qui est exécuté sur l'infrastructure Fargate peut s'enregistrer dans votre cluster Amazon EKS et apparaître dans votre cluster comme un nœud. Le rôle d’exécution du pod fournit également des autorisations IAM à l’infrastructure Fargate pour permettre un accès en lecture aux référentiels d’images Amazon ECR. Pour de plus amples informations, consultez Rôle IAM d’exécution de pod Amazon EKS.
Les profils Fargate ne peuvent pas être modifiés. Toutefois, vous pouvez créer un nouveau profil mis à jour pour remplacer un profil existant, puis supprimer l'original.
Note
Tous les pods qui s’exécutent à l’aide d’un profil Fargate sont arrêtés et placés en attente lorsque le profil est supprimé.
Si tous les profils Fargate d'un cluster ont l'état DELETING, vous devez attendre que ce profil Fargate soit définitivement supprimé avant de pouvoir créer d'autres profils dans ce cluster.
Note
Fargate ne prend actuellement pas en charge Kubernetes TopologySpreadConstraints
Amazon EKS et Fargate répartissent les pods entre chacun des sous-réseaux définis dans le profil Fargate. Cependant, vous risquez de vous retrouver avec une répartition inégale. Si vous avez besoin d'une répartition uniforme, utilisez deux profils Fargate. Une répartition uniforme est importante dans les scénarios où vous souhaitez déployer deux réplicas sans aucune durée d’indisponibilité. Nous vous recommandons de n'avoir qu'un seul sous-réseau pour chaque profil.
Composants de profil Fargate
Les composants suivants sont contenus dans un profil Fargate.
- Rôle d'exécution du pod
-
Lorsque votre cluster crée des pods sur AWS Fargate, le
kubeletqui s’exécute sur l’infrastructure Fargate doit effectuer des appels vers les API AWS en votre nom. Par exemple, il doit effectuer des appels pour extraire des images de conteneur à partir d'Amazon ECR. Pour ce faire, le rôle d’exécution de pod Amazon EKS fournit les autorisations IAM.Lorsque vous créez un profil Fargate, vous devez spécifier un rôle d’exécution de pods à utiliser avec vos pods. Ce rôle est ajouté au contrôle d’accès basé sur les rôles
(RBAC) Kubernetes du cluster à des fins d’autorisation. Ainsi, le kubeletexécuté sur l’infrastructure Fargate peut s’enregistrer dans votre cluster Amazon EKS et apparaître dans votre cluster comme un nœud. Pour de plus amples informations, consultez Rôle IAM d’exécution de pod Amazon EKS. - Sous-réseaux
-
Les ID des sous-réseaux poury lancer des pods utilisent ce profil. Pour l’instant, les pods fonctionnant sur Fargate n’ont pas d’adresse IP publique. Par conséquent, seuls les sous-réseaux privés sans route directe vers une passerelle Internet sont acceptés pour ce paramètre.
- Sélecteurs
-
Les sélecteurs à faire correspondre pour que les pods utilisent ce profil Fargate. Vous pouvez spécifier jusqu'à cinq sélecteurs dans un profil Fargate. Les sélecteurs intègrent les composants suivants :
-
Espace de noms : vous devez spécifier un espace de noms pour un sélecteur. Le sélecteur ne correspond qu’aux pods créés dans cet espace de noms. Vous pouvez toutefois créer plusieurs sélecteurs pour cibler plusieurs espaces de noms.
-
Labels : vous pouvez éventuellement spécifier des labels Kubernetes à faire correspondre pour le sélecteur. Le sélecteur ne correspond qu’aux pods qui possèdent tous les labels spécifiés dans le sélecteur.
-
Caractères génériques du profil Fargate
En plus des caractères autorisés par Kubernetes, vous pouvez utiliser * et ? dans les critères de sélection pour les espaces de noms, les clés d’étiquette et les valeurs d’étiquette :
-
*représente aucun, un ou plusieurs caractères. Par exemple,prod*peut représenterprodetprod-metrics. -
?représente un caractère unique (par exemple,value?peut représentervaluea). Cependant, il ne peut pas représentervalueetvalue-a, parce que?ne peut représenter qu'un seul et unique caractère.
Ces caractères génériques peuvent être utilisés dans n'importe quelle position et en combinaison (par exemple, prod*, *dev et frontend*?). Les autres caractères génériques et formes de correspondance de modèles, tels que les expressions régulières, ne sont pas pris en charge.
S’il existe plusieurs profils correspondants pour l’espace de noms et les étiquettes dans la spécification du pod, Fargate sélectionne le profil avec un tri alphanumérique par nom de profil. Par exemple, si les deux profils A (avec le nom beta-workload) et le profil B (avec le nom prod-workload) ont des sélecteurs correspondants pour les pods à lancer, Fargate choisit le profil A (beta-workload) pour les pods. Les pods ont des étiquettes avec le profil A sur les pods (par exemple, eks.amazonaws.com/fargate-profile=beta-workload).
Si vous souhaitez migrer des pods Fargate existants vers de nouveaux profils qui utilisent des caractères génériques, vous pouvez procéder de deux manières :
-
Créez un nouveau profil avec les sélecteurs correspondants, puis supprimez les anciens profils. Les pods étiquetés avec d'anciens profils sont reprogrammés vers de nouveaux profils correspondants.
-
Si vous souhaitez migrer des charges de travail mais que vous ne savez pas quelles étiquettes Fargate figurent sur chaque pod Fargate, vous pouvez utiliser la méthode suivante. Créez un nouveau profil avec un nom qui trie d'abord par ordre alphanumérique parmi les profils du même cluster. Recyclez ensuite les pods Fargate qui doivent être migrés vers de nouveaux profils.
Créer un profil Fargate
Cette section décrit comment créer un profil Fargate. Vous devez également avoir créé un rôle d’exécution de pod à utiliser pour votre profil Fargate. Pour de plus amples informations, consultez Rôle IAM d’exécution de pod Amazon EKS. Les pods qui s’exécutent sur Fargate ne sont pris en charge que sur les sous-réseaux privés avec accès NAT Gateway aux services AWS, mais pas sur une route directe vers une passerelle Internet. Le VPC de votre cluster doit donc disposer de sous-réseaux privés.
Vous pouvez créer un profil avec les éléments suivants :
eksctl
Pour créer un profil Fargate avec eksctl
Créez votre profil Fargate à l’aide de la commande eksctl suivante, en remplaçant chaque valeur d’exemple par vos propres valeurs. Vous devez spécifier un espace de noms. Cependant, l’option --labels n’est pas obligatoire.
eksctl create fargateprofile \ --cluster my-cluster \ --name my-fargate-profile \ --namespace my-kubernetes-namespace \ --labels key=value
Vous pouvez utiliser certains caractères génériques pour les étiquettes my-kubernetes-namespace et key=value. Pour de plus amples informations, consultez Caractères génériques du profil Fargate.
AWS Management Console
Pour créer un profil Fargate avec AWS Management Console
-
Ouvrez la console Amazon EKS
. -
Choisissez le cluster pour lequel vous voulez créer un profil Fargate.
-
Choisissez l'onglet Calcul.
-
Sous Fargate profiles (Profils Fargate), choisissez Add Fargate profile (Ajouter un profil Fargate).
-
Sur la page Configure Fargate profile (Configurer le profil Fargate), procédez comme suit :
-
Pour Nom, saisissez un nom unique pour votre profil Fargate, tel que
my-profile. -
Pour le rôle d’exécution du pod, choisissez le rôle d’exécution du pod à utiliser avec votre profil Fargate. Seuls les rôles IAM avec le principal de service
eks-fargate-pods.amazonaws.com.rproxy.govskope.casont affichés. Si vous ne voyez aucun rôle répertorié ici, vous devez en créer un. Pour de plus amples informations, consultez Rôle IAM d’exécution de pod Amazon EKS. -
Modifiez les sous-réseaux sélectionnés selon vos besoins.
Note
Seuls les sous-réseaux privés sont pris en charge pour les pods qui s’exécutent sur Fargate.
-
Dans Identifications, vous pouvez éventuellement étiqueter votre profil Fargate. Ces balises ne se propagent pas aux autres ressources qui sont associées au profil, comme les pods.
-
Choisissez Suivant.
-
-
Sur la page Configurer la sélection de pod, procédez comme suit :
-
Pour l’espace de noms, saisissez un espace de noms correspondant aux pods.
-
Vous pouvez utiliser des espaces de noms spécifiques pour les faire correspondre, tels que
kube-systemoudefault. -
Vous pouvez utiliser certains caractères génériques (par exemple,
prod-*) pour faire correspondre plusieurs espaces de noms (par exemple,prod-deploymentetprod-test). Pour de plus amples informations, consultez Caractères génériques du profil Fargate.
-
-
(Facultatif) Ajoutez des labels Kubernetes au sélecteur. Ajoutez-les spécifiquement à celui auquel les pods de l’espace de noms spécifié doivent correspondre.
-
Vous pouvez ajouter la balise
infrastructure: fargateau sélecteur afin que seuls les pods de l’espace de noms spécifié qui possèdent également la balise Kubernetesinfrastructure: fargatecorrespondent au sélecteur. -
Vous pouvez utiliser certains caractères génériques (par exemple,
key?: value?) pour faire correspondre plusieurs espaces de noms (par exemple,keya: valueaetkeyb: valueb). Pour de plus amples informations, consultez Caractères génériques du profil Fargate.
-
-
Choisissez Suivant.
-
-
Sur la page Vérifier et créer, vérifiez les informations de votre profil Fargate et choisissez Créer.