web-dev-qa-db-fra.com

Quel est le pourcentage sain minimum et le pourcentage maximum dans Amazon ECS

J'ai déjà l'expérience de Docker et EC2. Mais je suis nouveau sur ECS. Quelqu'un peut-il m'aider à comprendre ce que font réellement ces deux paramètres, leur différence et leur utilisation?.

Documents officiels dit:

Le pourcentage sain minimum représente une limite inférieure du nombre de tâches de votre service qui doivent rester à l'état RUNNING pendant un déploiement, en pourcentage du nombre souhaité nombre de tâches (arrondi à l'entier le plus proche). Ce paramètre vous permet de déployer sans utiliser de capacité de cluster supplémentaire. Par exemple, si votre service a un nombre souhaité de quatre tâches et un pourcentage sain minimum de 50%, le planificateur peut arrêter deux tâches existantes pour libérer la capacité du cluster avant de démarrer deux nouvelles tâches. Les tâches des services qui n'utilisent pas d'équilibreur de charge sont considérées comme saines si elles sont à l'état RUNNING; les tâches des services qui utilisent un équilibreur de charge sont considérées comme saines si elles sont à l'état RUNNING et l'instance de conteneur sur laquelle elles sont hébergées est signalée comme saine par l'équilibreur de charge. La valeur par défaut du pourcentage d'intégrité minimal est de 50% dans la console et de 100% pour l'AWS CLI, les kits SDK AWS et les API.

Le paramètre pourcentage maximum représente une limite supérieure du nombre de tâches de votre service autorisées dans l'état RUNNING ou PENDING pendant un déploiement, en pourcentage de le nombre de tâches souhaité (arrondi à l'entier le plus proche). Ce paramètre vous permet de définir la taille du lot de déploiement. Par exemple, si votre service a un nombre souhaité de quatre tâches et une valeur maximale en pourcentage de 200%, le planificateur peut démarrer quatre nouvelles tâches avant d'arrêter les quatre anciennes tâches (à condition que les ressources de cluster requises pour ce faire soient disponibles). La valeur par défaut pour le pourcentage maximum est 200%.

Je n'ai toujours pas eu une idée claire de ces deux paramètres.

  1. Avec un pourcentage sain minimum, si mon service a un nombre souhaité de 4 tâches et un pourcentage sain minimum de 25%, combien de tâches existantes/nouvelles le planificateur démarrera-t-il/arrêter?
  2. Avec un pourcentage maximal, si mon service a un nombre souhaité de 4 tâches et une valeur maximale de 50%, combien de tâches existantes/nouvelles le planificateur démarrera-t-il/arrêtera-t-il?
  3. Si mon service n'a qu'une seule tâche en cours d'exécution, comment définir ces paramètres pour arrêter la tâche existante et exécuter une nouvelle tâche.
20
sith
  1. Avec les tâches souhaitées à 4 et la santé minimale à 25%, pendant le déploiement, ECS est autorisé à arrêter toutes les tâches sauf 1 avant de commencer de nouvelles tâches
  2. Le maximum doit être de 100+ pour que la configuration n'a pas de sens. Mais si vous avez 4 tâches souhaitées et un maximum de 150%, ECS est autorisé à démarrer 2 nouvelles tâches avant d'arrêter d'autres tâches.
    • Si vous voulez vous assurer qu'il n'y a jamais plus d'une tâche en cours d'exécution lors du redéploiement, vous devez définir la valeur souhaitée sur 1, le minimum sur 0% et le maximum sur 100%.
    • Si vous voulez vous assurer qu'il y a toujours au moins 1 tâche en cours, vous devez définir la valeur souhaitée sur 1, le minimum sur 100% et le maximum sur 200%.

Autre exemple. Si vous avez souhaité à 4, minimum à 50% et maximum à 150%. ECS peut alors décider de ce qu'il fera pendant le déploiement.

  • Si le cluster n'a pas plus de ressources, il peut décider d'arrêter 2 tâches, de démarrer 2 nouvelles tâches dans la nouvelle version, d'attendre que la nouvelle tâche soit saine. Arrêtez ensuite les deux tâches restantes et lancez-en deux nouvelles.
  • Si le cluster a plus de ressources, ECS peut décider de démarrer deux nouvelles tâches avant d'arrêter les tâches existantes.

Ou vous pouvez le voir de cette façon. Pendant le redéploiement, ECS doit s'exécuter entre les tâches souhaitées MinimumPercent/100 * et MaximumPercent/100 *. Dans ce cas, entre 2 à 6 tâches.

28
Tobias Tobiasen