Commencez avec AWS Fargate votre cluster - 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.

Commencez avec AWS Fargate votre cluster

Important

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

Cette rubrique décrit comment commencer Pods AWS Fargate à utiliser votre EKS cluster Amazon.

Si vous limitez l'accès au point de terminaison public de votre cluster à l'aide de CIDR blocs, nous vous recommandons d'activer également l'accès au point de terminaison privé. De cette manière, les Pods Fargate peuvent communiquer avec le cluster. Si le point de terminaison privé n'est pas activé, les CIDR blocs que vous spécifiez pour l'accès public doivent inclure les sources sortantes de votreVPC. Pour de plus amples informations, veuillez consulter Contrôlez l'accès réseau au point de terminaison API du serveur du cluster.

Prérequis

Un cluster existant. Si vous ne possédez pas encore de EKS cluster Amazon, consultezCommencez avec Amazon EKS.

Étape 1 : Assurez-vous que les nœuds existants peuvent communiquer avec Fargate Pods

Si vous utilisez un nouveau cluster sans nœuds ou un cluster avec uniquement des groupes de nœuds gérés, vous pouvez passer à Étape 2 : Création d'un rôle d'exécution Pod Fargate.

Supposons que vous travaillez avec un cluster existant ayant déjà des nœuds associés. Assurez-vous que les Pods sur ces nœuds peuvent communiquer librement avec les Pods qui s'exécutent sur Fargate. Les Pods qui s'exécutent sur Fargate sont automatiquement configurés pour utiliser le groupe de sécurité du cluster auquel ils sont associés. Assurez-vous que tous les nœuds existants de votre cluster peuvent envoyer et recevoir du trafic vers et depuis le groupe de sécurité du cluster. Les Simplifiez le cycle de vie des nœuds avec des groupes de nœuds gérés sont automatiquement configurés pour utiliser également le groupe de sécurité du cluster, vous n'avez donc pas besoin de les modifier ou de les vérifier pour cette compatibilité.

Pour les groupes de nœuds existants créés avec eksctl ou avec les AWS CloudFormation modèles EKS gérés par Amazon, vous pouvez ajouter le groupe de sécurité du cluster aux nœuds manuellement. Vous pouvez également modifier le modèle de lancement du groupe Auto Scaling pour le groupe de nœuds, afin d'attacher le groupe de sécurité du cluster aux instances. Pour plus d'informations, consultez la section Modification des groupes de sécurité d'une instance dans le guide de VPC l'utilisateur Amazon.

Vous pouvez rechercher un groupe de sécurité pour votre cluster dans la AWS Management Console section Mise en réseau du cluster. Vous pouvez également le faire à l'aide de la AWS CLI commande suivante. Lorsque vous utilisez cette commande, remplacez my-cluster par le nom de votre cluster.

aws eks describe-cluster --name my-cluster --query cluster.resourcesVpcConfig.clusterSecurityGroupId

Étape 2 : Création d'un rôle d'exécution Pod Fargate

Lorsque votre cluster est créé Pods AWS Fargate, les composants qui s'exécutent sur l'infrastructure Fargate doivent effectuer des appels AWS APIs en votre nom. Le rôle EKS Pod d'exécution Amazon fournit les IAM autorisations nécessaires. Pour créer un rôle AWS Fargate Pod d'exécution, voirRôle IAM d'exécution de Pod Amazon EKS.

Note

Si vous avez créé votre cluster à eksctl l'aide de --fargate cette option, votre cluster possède déjà un rôle Pod d'exécution que vous pouvez trouver dans la IAM console avec le modèleeksctl-my-cluster-FargatePodExecutionRole-ABCDEFGHIJKL. De même, si vous utilisez eksctl pour créer vos profils Fargate, eksctl créera votre rôle d'exécution de Pod si celui-ci n'existe pas déjà.

Étape 3 : Créez un profil Fargate pour votre cluster

Pour programmer des Pods qui peuvent s'exécuter sur Fargate dans votre cluster, vous devez définir un profil Fargate qui spécifie quels Pods utilisent Fargate lorsqu'ils sont lancés. Pour de plus amples informations, veuillez consulter Définissez quelle Pods utilisation AWS Fargate lors du lancement.

Note

Si vous avez créé votre cluster avec eksctl à l'aide de l'option --fargate, un profil Fargate est déjà créé pour votre cluster avec des sélecteurs pour tous les Pods dans les espaces de noms kube-system et default. Utilisez la procédure suivante pour créer des profils Fargate pour tout autre espace de noms que vous souhaitez utiliser avec Fargate.

Vous pouvez créer un profil Fargate en utilisant eksctl ou la AWS Management Console.

eksctl

Cette procédure nécessite eksctl version 0.189.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.

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. Dans Nom, saisissez un nom pour votre profil Fargate. Le nom doit être unique.

    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.

Étape 4 : mise à jour CoreDNS

Par défaut, CoreDNS est configuré pour s'exécuter sur l'EC2infrastructure Amazon sur les EKS clusters Amazon. Si vous souhaitez uniquement exécuter vos Pods sur Fargate dans votre cluster, effectuez les étapes suivantes.

Note

Si vous avez créé votre cluster à l'aide de eksctl en utilisant l'option --fargate, vous pouvez passer directement à Étapes suivantes.

  1. Créez un profil Fargate pour CoreDNS avec la commande suivante. Remplacez-le my-cluster par le nom de votre cluster, par votre identifiant de compte, AmazonEKSFargatePodExecutionRole par le nom de votre rôle Pod d'exécution 00000000000000010000000000000002, et 0000000000000003 par le nom IDs de vos sous-réseaux privés. 111122223333 Si vous n'avez pas de rôle d'exécution de Pod existant, vous devez d'abord en créer un.

    Important

    Le rôle ne ARN peut pas inclure un chemin autre que/. Par exemple, si le nom de votre rôle estdevelopment/apps/my-role, vous devez le remplacer my-role lorsque vous spécifiez le ARN rôle. Le format du rôle ARN doit êtrearn:aws:iam::111122223333:role/role-name.

    aws eks create-fargate-profile \ --fargate-profile-name coredns \ --cluster-name my-cluster \ --pod-execution-role-arn arn:aws:iam::111122223333:role/AmazonEKSFargatePodExecutionRole \ --selectors namespace=kube-system,labels={k8s-app=kube-dns} \ --subnets subnet-0000000000000001 subnet-0000000000000002 subnet-0000000000000003
  2. Exécutez la commande suivante pour supprimer l'annotation eks.amazonaws.com/compute-type : ec2 des Pods CoreDNS.

    kubectl patch deployment coredns \ -n kube-system \ --type json \ -p='[{"op": "remove", "path": "/spec/template/metadata/annotations/eks.amazonaws.com~1compute-type"}]'

Étapes suivantes

  • Vous pouvez commencer à migrer vos applications existantes pour les exécuter sur Fargate avec le flux suivant.

    1. Créez un profil Fargate correspondant à l'espace de noms Kubernetes et aux étiquettes Kubernetes de votre application.

    2. Supprimez et recréez tous les Pods existants, afin qu'ils soient programmés sur Fargate. Par exemple, la commande suivante déclenche le déploiement de coredns. Vous pouvez modifier l'espace de noms et le type de déploiement pour mettre à jour vos Pods spécifiques.

      kubectl rollout restart -n kube-system deployment coredns
  • Déployez Application d'itinéraire et HTTP trafic avec Application Load Balancers pour autoriser les objets d'entrée pour vos Pods s'exécutant sur Fargate.

  • Vous pouvez utiliser le Ajustez les ressources du pod avec Vertical Pod Autoscaler pour définir la taille initiale CPU et la mémoire correctes de votre Pods Fargate, puis utiliser le pour Faites évoluer les déploiements de pods avec Horizontal Pod Autoscaler les redimensionner. Pods Si vous souhaitez que le Vertical Pod Autoscaler soit automatiquement redéployé sur Pods Fargate avec des combinaisons supérieures CPU et de mémoire, réglez le mode du Vertical Pod Autoscaler sur ou. Auto Recreate Ceci permet de garantir une fonctionnalité correcte. Pour plus d'informations, consultez la documentation Vertical Pod Autoscaler sur GitHub.

  • Vous pouvez configurer le collecteur AWS Distro for OpenTelemetry (ADOT) pour la surveillance des applications en suivant ces instructions.