AWS Fargate profil - 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.

AWS Fargate profil

Important

AWS Fargate avec Amazon EKS n'est pas disponible en AWS GovCloud (USA Est) et AWS GovCloud (USA Ouest).

Avant de programmer des Pods sur Fargate dans votre cluster, vous devez définir au moins un profil Fargate qui spécifie quels Pods utilisent Fargate lorsqu'ils sont lancés.

En tant qu'administrateur, vous pouvez utiliser un profil Fargate pour déclarer les Pods à exécuter sur Fargate. Pour ce faire, vous pouvez utiliser 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 programmer tous les Pods qui s'exécutent dans cet espace de noms sur Fargate en utilisant le profil. Si a to-be-scheduled Pod correspond à l'un des sélecteurs du profil Fargate, cela Pod est planifié sur Fargate.

Si un Pod correspond à plusieurs profils Fargate, vous pouvez spécifier quel profil un Pod utilise en ajoutant l'étiquette Kubernetes à 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 programmé 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 Role Based Access Control (RBAC, contrôle d'accès basé sur les rôles) du cluster Kubernetes à des fins d'autorisation. Ainsi, le kubelet 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 plus d’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 en cours d'exécution utilisant un profil Fargate seront arrêtés et mis en attente lorsque le profil sera 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.

Amazon EKS et Fargate répartissent les Pods sur chacun des sous-réseaux qui sont 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épliques sans aucune interruption de service. 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 est créé Pods AWS Fargate, celui kubelet qui s'exécute sur l'infrastructure Fargate doit appeler les API en votre AWS 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 Pod à 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 kubelet exécuté sur l'infrastructure Fargate peut s'enregistrer dans votre cluster Amazon EKS et apparaître dans votre cluster comme un nœud. Pour plus d’informations, consultez Rôle IAM d'exécution de Pod Amazon EKS.

Sous-réseaux

Les ID des sous-réseaux pour y 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 qui sont créés dans cet espace de noms. Vous pouvez toutefois créer plusieurs sélecteurs pour cibler plusieurs espaces de noms.

  • Étiquettes –V ous pouvez éventuellement spécifier des étiquettes Kubernetes à faire correspondre pour le sélecteur. Le sélecteur ne correspond qu'aux Pods qui possèdent toutes les étiquettes spécifiées dans le sélecteur.

Caractères génériques de profils Fargate

En plus des caractères autorisés par Kubernetes, vous êtes autorisé à 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ésenter prod et prod-metrics.

  • ? représente un caractère unique (par exemple, value? peut représenter valuea). Cependant, il ne peut pas représenter value et value-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 le profil 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éation d'un profil Fargate

Cette rubrique 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 plus d'informations, consultezRôle IAM d'exécution de Pod Amazon EKS. Podsqui s'exécutent sur Fargate ne sont pris en charge que sur les sous-réseaux privés dotés d'un accès Services AWS par passerelle NAT, mais ne constituent pas 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 eksctl ou la AWS Management Console.

Cette procédure nécessite eksctl version 0.184.0 ou ultérieure. Vous pouvez vérifier votre version avec la commande suivante :

eksctl version

Pour les instructions d'installation ou de mise à niveau de eksctl, consultez la rubrique Installation dans la documentation eksctl.

eksctl
Pour créer un profil Fargate avec eksctl

Créez votre profil Fargate avec la commande eksctl suivante, en remplaçant chaque example value 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 plus d’informations, consultez Caractères génériques de profils Fargate.

AWS Management Console
Pour créer un profil Fargate pour un cluster avec AWS Management Console
  1. Ouvrez la console Amazon EKS à l'adresse https://console.aws.amazon.com/eks/home#/clusters.

  2. Choisissez le cluster pour lequel vous voulez créer un profil Fargate.

  3. Choisissez l'onglet Calcul.

  4. Sous Fargate profiles (Profils Fargate), choisissez Add Fargate profile (Ajouter un profil Fargate).

  5. Sur la page Configure Fargate profile (Configurer le profil Fargate), procédez comme suit :

    1. Pour Nom, saisissez un nom unique pour votre profil Fargate, tel que my-profile.

    2. Pour 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 sont affichés. Si vous ne voyez aucun rôle répertorié ici, vous devez en créer un. Pour plus d’informations, consultez Rôle IAM d'exécution de Pod Amazon EKS.

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

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

    5. Choisissez Suivant.

  6. Sur la page Configurer la sélection de Pod, procédez comme suit :

    1. Pour 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-system ou default.

      • Vous pouvez utiliser certains caractères génériques (par exemple, prod-*) pour faire correspondre plusieurs espaces de noms (par exemple, prod-deployment et prod-test). Pour plus d’informations, consultez Caractères génériques de profils Fargate.

    2. (Facultatif) Ajoutez des étiquettes Kubernetes au sélecteur. Ajoutez-les spécifiquement à celui auquel les Pods de l'espace de noms spécifié doivent correspondre.

      • Vous pouvez ajouter l'étiquette infrastructure: fargate au sélecteur, afin que seuls les Pods de l'espace de noms spécifié qui présentent également l'étiquette infrastructure: fargate Kubernetes correspondent 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: valuea et keyb: valueb). Pour plus d’informations, consultez Caractères génériques de profils Fargate.

    3. Choisissez Suivant.

  7. Sur la page Vérifier et créer, vérifiez les informations de votre profil Fargate et choisissez Créer.

Suppression d'un profil Fargate

Cette rubrique décrit comment supprimer un profil Fargate.

Lorsque vous supprimez un profil Fargate, tous les Pods qui étaient programmés sur Fargate avec ce profil sont supprimés. Si ces Pods correspondent à un autre profil Fargate, ils sont programmés sur Fargate avec ce profil. S'ils ne correspondent plus à aucun profil Fargate, ils ne sont pas planifiés sur Fargate et peuvent rester en attente.

Un seul profil Fargate d'un cluster peut avoir le statut DELETING à la fois. Vous devez attendre que la suppression d'un profil Fargate soit terminée pour pouvoir supprimer un autre profil de ce cluster.

Vous pouvez supprimer un profil aveceksctl, le AWS Management Console, ou le AWS CLI. Sélectionnez l'onglet portant le nom de l'outil que vous souhaitez utiliser pour supprimer votre profil.

eksctl

Pour supprimer un profil Fargate avec eksctl

Utilisez la commande suivante pour supprimer un profil d'un cluster. Remplacez chaque example value par vos propres valeurs.

eksctl delete fargateprofile --name my-profile --cluster my-cluster
AWS Management Console
Pour supprimer un profil Fargate d'un cluster avec AWS Management Console
  1. Ouvrez la console Amazon EKS à l'adresse https://console.aws.amazon.com/eks/home#/clusters.

  2. Dans le panneau de navigation de gauche, choisissez Clusters. Dans la liste des clusters, sélectionnez celui dont vous souhaitez supprimer le profil Fargate.

  3. Choisissez l'onglet Calcul.

  4. Sélectionnez le profil Fargate à supprimer, puis l'option Delete (Supprimer).

  5. Sur la page Delete Fargate profile (Supprimer le profil Fargate), saisissez le nom du profil, puis sélectionnez Delete (Supprimer).

AWS CLI

Pour supprimer un profil Fargate avec AWS CLI

Utilisez la commande suivante pour supprimer un profil d'un cluster. Remplacez chaque example value par vos propres valeurs.

aws eks delete-fargate-profile --fargate-profile-name my-profile --cluster-name my-cluster