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éployez les services Amazon ECS en remplaçant les tâches
Lorsque vous créez un service qui utilise le type de déploiement Mise à jour propagée (ECS), le planificateur de service Amazon ECS remplace les tâches en cours d’exécution par de nouvelles tâches. Le nombre de tâches ajoutées au service ou supprimées du service par Amazon ECS lors d'une mise à jour propagée est contrôlé par la configuration de déploiement du service.
Amazon ECS utilise les paramètres suivants pour déterminer le nombre de tâches :
-
Le
minimumHealthyPercentreprésente la limite inférieure du nombre de tâches qui devraient être exécutées et saines pour un service lors d'un déploiement continu ou lorsqu'une instance de conteneur est épuisée, en pourcentage du nombre de tâches souhaité pour le service. Cette valeur est arrondie à la valeur supérieure. Par exemple, si le pourcentage minimum d'instances saines est50et que le nombre de tâches souhaité est de quatre, le planificateur peut arrêter deux tâches existantes avant de démarrer deux nouvelles tâches. De même, si le pourcentage de santé minimum est de 75 % et que le nombre de tâches souhaité est de deux, le planificateur ne peut pas arrêter de tâche car la valeur résultante est également de deux. -
Le
maximumPercentreprésente la limite supérieure du nombre de tâches qui doivent être exécutées pour un service lors d'un déploiement continu ou lorsqu'une instance de conteneur est épuisée, en pourcentage du nombre de tâches souhaité pour un service. Cette valeur est arrondie à la valeur inférieure. Par exemple, si le pourcentage maximum est de quatre200et que le nombre de tâches souhaité est de quatre, le planificateur peut démarrer quatre nouvelles tâches avant d'arrêter quatre tâches existantes. De même, si le pourcentage maximal est125et que le nombre de tâches souhaité est de trois, le planificateur ne peut pas démarrer de tâche, car la valeur résultante est également de trois.
Lors d'un déploiement continu, lorsque les tâches ne fonctionnent plus correctement, Amazon ECS les remplace afin de maintenir la disponibilité de votre service minimumHealthyPercent et d'en protéger la disponibilité. Les tâches défectueuses sont remplacées à l'aide de la même révision de service à laquelle elles appartiennent. Cela garantit que le remplacement de tâches défectueux dans la révision source est indépendant des échecs de tâches dans la révision cible. Lorsque le maximumPercent paramètre le permet, le planificateur lance des tâches de remplacement avant d'arrêter celles qui ne fonctionnent pas correctement. Si le maximumPercent paramètre empêche le planificateur de démarrer d'abord une tâche de remplacement, il arrête une tâche défectueuse à la fois pour libérer de la capacité avant de lancer une tâche de remplacement.
Important
Lorsque vous définissez un pourcentage minimum ou maximal d'instances saines, vous devez vous assurer que le planificateur peut arrêter ou démarrer au moins une tâche lorsqu'un déploiement est déclenché. Si votre service a un déploiement bloqué en raison d'une configuration de déploiement non valide, un message d'événement de service est envoyé. Pour de plus amples informations, veuillez consulter service (service-name) n'a pas pu arrêter ou démarrer des tâches pendant un déploiement en raison de la configuration du déploiement du service. Mettez à jour la valeur minimumHealthyPercent ou MaximumPercent et réessayez..
Les déploiements progressifs s’appuient sur deux méthodes permettant d’identifier rapidement l’échec d’un déploiement de service :
Les méthodes peuvent être utilisées séparément ou conjointement. Lorsque les deux méthodes sont utilisées, le déploiement est défini en échec dès que les critères d’échec de l’une ou l’autre méthode sont remplis.
Suivez les instructions suivantes pour déterminer quelle méthode utiliser :
-
Disjoncteur : utilisez cette méthode lorsque vous souhaitez arrêter un déploiement car les tâches ne peuvent pas démarrer.
-
CloudWatch alarmes - Utilisez cette méthode lorsque vous souhaitez arrêter un déploiement en fonction des métriques de l'application.
Les deux méthodes permettent de restaurer la version de service précédente.
Résolution de l'image du conteneur
Amazon ECS résout les noms des images de conteneurs et toutes les balises d’image spécifiées dans la définition de la tâche en condensés d’images de conteneurs. Si vous créez un service qui exécute et gère une seule tâche, cette tâche est utilisée pour établir des condensés d’images pour les conteneurs de la tâche. Si vous créez un service qui exécute et gère plusieurs tâches, la première tâche démarrée par le planificateur de service lors du déploiement est utilisée pour établir les condensés d’images pour les conteneurs contenus dans les tâches.
Si au moins trois tentatives d’établissement des condensés d’images du conteneur échouent, le déploiement se poursuit sans résolution de condensé d’image. Si le disjoncteur de déploiement est activé, le déploiement échoue également et est annulé.
Une fois les condensés des images du conteneur établis, Amazon ECS les utilise pour démarrer toutes les autres tâches souhaitées et pour toute future mise à jour de service. Ainsi, toutes les tâches d’un service exécutent toujours des images de conteneur identiques, ce qui garantit la cohérence des versions de votre logiciel.
Vous pouvez configurer ce comportement pour chaque conteneur de votre tâche en utilisant le paramètre versionConsistency figurant dans la définition du conteneur. Pour de plus amples informations, veuillez consulter versionConsistency.
Note
-
Les versions de l’agent Amazon ECS inférieures à
1.31.0ne prennent pas en charge la résolution du condensé d’image. Les versions de l’agent1.31.0à1.69.0ne prenent en charge la résolution de condensé d’images que pour les images transférées vers les référentiels Amazon ECR. Les versions de l’agent1.70.0ou supérieures prennent en charge la résolution de condensé d’image pour toutes les images. -
La version de plateforme Linux Fargate minimale pour la résolution du résumé d’image est
1.3.0. La version de plateforme Windows Fargate minimale pour la résolution du condensé d’image est1.0.0. -
Amazon ECS ne capture pas les résumés des conteneurs annexes gérés par Amazon ECS, tels que l'agent de GuardDuty sécurité Amazon ou le proxy Service Connect.
-
Pour réduire le temps de latence potentiel associé à la résolution des images de conteneur dans les services comportant plusieurs tâches, exécutez la version
1.83.0ou supérieure de l'agent Amazon ECS sur les instances de EC2 conteneur. Pour éviter toute latence potentielle, spécifiez des condensés d’images de conteneur dans votre définition de tâche. -
Si vous créez un service avec un nombre de tâches souhaité égal à zéro, Amazon ECS ne peut pas établir de résumés de conteneurs tant que vous n’avez pas déclenché un autre déploiement du service avec un nombre de tâches souhaité supérieur à zéro.
-
Pour établir des condensés d’images mis à jour, vous pouvez forcer un nouveau déploiement. Les condensés mis à jour seront utilisés pour démarrer de nouvelles tâches et n’affecteront pas les tâches déjà en cours. Pour plus d'informations sur le forçage de nouveaux déploiements, consultez forceNewDeploymentla référence des API Amazon ECS.
-
Lorsque vous faites appel à des fournisseurs de EC2 capacité, si la capacité est insuffisante pour démarrer une tâche lors du déploiement initial, la cohérence des versions logicielles peut échouer. Pour garantir la cohérence des versions même lorsque la capacité est limitée, définisse explicitement
versionConsistency: "enabled"dans la configuration de votre conteneur de définition de tâches plutôt que de vous fier au comportement par défaut. Cela oblige Amazon ECS à attendre que la capacité soit disponible avant de procéder au déploiement.