Définissez quelle Pods utilisation AWS Fargate lors du lancement - 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 tous.

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.

Définissez quelle Pods utilisation AWS Fargate lors du lancement

Important

AWS Fargate with 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 étiquette, Amazon EKS essaie de planifier tous ceux qui s'exécutent dans Pods cet espace de noms sur Fargate à l'aide du 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 de ce profil pour être programmé sur Fargate. KubernetesLes règles d'affinité/anti-affinité ne s'appliquent pas et ne sont pas nécessaires avec Amazon Fargate. EKS Pods

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 EKS composants Amazon qui s'exécutent sur l'infrastructure Fargate à l'aide du profil. Il est ajouté au contrôle d'accès basé sur les Kubernetes rôles (RBAC) du cluster à des fins d'autorisation. Ainsi, celui kubelet qui s'exécute sur l'infrastructure Fargate peut s'enregistrer auprès de votre cluster EKS Amazon et apparaître dans votre cluster en tant que nœud. Le rôle Pod d'exécution fournit également des IAM autorisations à l'infrastructure Fargate pour permettre l'accès en lecture aux référentiels d'images AmazonECR. Pour de plus amples informations, veuillez consulter 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 Pods se répartissent sur 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é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 effectuer des appels AWS APIs en votre nom. Par exemple, il doit passer des appels pour extraire des images de conteneurs depuis AmazonECR. Le rôle EKS Pod d'exécution Amazon fournit les IAM autorisations nécessaires à cette fin.

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 Kubernetes basé sur les rôles (RBAC) du cluster à des fins d'autorisation. Cela permet à l'kubeletinfrastructure Fargate de s'enregistrer auprès de votre cluster EKS Amazon et d'apparaître dans votre cluster en tant que nœud. Pour de plus amples informations, veuillez consulter Rôle IAM d'exécution de Pod Amazon EKS.

Sous-réseaux

Les IDs sous-réseaux dans lesquels se Pods lancer et qui 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éer un profil Fargate

Cette section explique 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 NAT privés dotés d'un accès par passerelle, mais pas Services AWS d'une route directe vers une passerelle Internet Gateway. Cela signifie que les sous-réseaux privés de votre cluster VPC doivent être disponibles. Vous pouvez créer un profil avec eksctl ou la AWS Management Console.

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 de plus amples informations, veuillez consulter 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 EKS console Amazon à 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 IAM rôles associés au principal eks-fargate-pods.amazonaws.com de service sont affichés. Si vous ne voyez aucun rôle répertorié ici, vous devez en créer un. Pour de plus amples informations, veuillez consulter 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 de plus amples informations, veuillez consulter 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 de plus amples informations, veuillez consulter 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.