Vaciado de instancias de contenedor - Amazon Elastic Container Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Vaciado de instancias de contenedor

Es posible que, en ocasiones, se deba eliminar una instancia de contenedor de un clúster; por ejemplo, para realizar actualizaciones del sistema, actualizar el daemon de Docker o reducir verticalmente la capacidad del clúster. Amazon ECS ofrece la capacidad de pasar de una instancia de contenedor a un estado DRAINING. Esto se denomina vaciado de instancias de contenedor. Cuando se establece una instancia de contenedor en DRAINING, Amazon ECS evita que se programen nuevas tareas para su ubicación en la instancia de contenedor.

Comportamiento de drenaje de los servicios

Se detiene de inmediato cualquier tarea que forme parte de un servicio que se encuentre en estado PENDING. Si la instancia de contenedor tienen capacidad disponible en el clúster, el programador de servicios iniciará las tareas de sustitución. Si la instancia de contenedor no dispone de capacidad suficiente, se enviará un mensaje de evento de servicio indicando el problema.

Las tareas que forman parte de un servicio en la instancia de contenedor y se encuentran en estado RUNNING pasan al estado STOPPED. El programador de servicios intenta sustituir las tareas de acuerdo con los parámetros minimumHealthyPercent y maximumPercent de configuración y el tipo de implementación del servicio. Para obtener más información, consulte Tipos de implementación de Amazon ECS y Parámetros de definición de servicio.

  • Si minimumHealthyPercent está por debajo del 100%, el programador puede hacer caso omiso de desiredCount temporalmente durante la sustitución de tareas. Por ejemplo, desiredCount son cuatro tareas, un mínimo del 50% permite al programador detener dos tareas existentes antes de iniciar dos nuevas tareas. Si el mínimo es el 100%, el programador de servicio no puede eliminar las tareas existentes hasta que las tareas de sustitución se consideren en buen estado. Si hay tareas para servicios que no utilizan un balanceador de carga en el estado RUNNING, se consideran en buen estado. Las tareas para servicios que utilizan un balanceador de carga se consideran en buen estado si están en estado RUNNING y el balanceador de carga notifica que la instancia de contenedor en la que están alojados tiene buen estado.

    importante

    Si usa instancias de spot y minimumHealthyPercent es superior o igual al 100 %, el servicio no tendrá tiempo suficiente para reemplazar la tarea antes de que finalice la instancia de spot.

  • El parámetro maximumPercent representa un límite superior en la cantidad de tareas en ejecución durante la sustitución de tareas, que permite definir el tamaño del lote de sustitución. Por ejemplo, si desiredCount de cuatro tareas, un máximo de 200% comienza cuatro tareas nuevas antes de parar las cuatro tareas que se van a vaciar (siempre que los recursos del clúster requeridos para hacer esto estén disponibles). Si el mínimo es 100%, entonces las tareas de sustitución no pueden comenzar hasta que se hayan parado las tareas de vaciado.

    importante

    Si tanto minimumHealthyPercent como maximumPercent son el 100 %, entonces el servicio no puede eliminar las tareas existentes y tampoco puede iniciar tareas de reemplazo. Esto impide el drenaje correcto de las instancias de contenedores e impide realizar nuevas implementaciones.

Comportamiento de drenaje para tareas independientes

Las tarea independiente en estado PENDING o RUNNING no se verán afectadas; debe esperar a que se detengan por su cuenta o detenerlas manualmente. La instancia de contenedor permanecerá en el estado DRAINING.

Una instancia de contenedor ha completado el vaciado cuando todas las tareas que se ejecutan en la instancia pasan al estado STOPPED. La instancia de contenedor permanece en estado DRAINING hasta que se vuelva a activar o se elimine. Para comprobar el estado de las tareas de la instancia contenedora, utilice la ListTasksoperación con el containerInstance parámetro para obtener una lista de las tareas de la instancia seguida de una DescribeTasksoperación con el nombre de recurso de Amazon (ARN) o el identificador de cada tarea para verificar el estado de la tarea.

Cuando esté listo para que la instancia de contenedor comience a alojar nuevamente tareas, cambie el estado de la instancia de contenedor de DRAINING a ACTIVE. El programador de servicios de Amazon ECS volverá a considerar la instancia de contenedor para la ubicación de tareas.

Vaciado de instancias de contenedor

Para establecer una instancia de contenedor en vaciado desde la nueva AWS Management Console, siga estos pasos.

También puedes usar la acción o el update-container-instances-statecomando de la UpdateContainerInstancesStateAPI para cambiar el estado de una instancia de contenedor aDRAINING.

AWS Management Console
  1. Abra la consola en https://console.aws.amazon.com/ecs/v2.

  2. En el panel de navegación, seleccione Clusters (Clústeres).

  3. En la página Clusters (Clústeres), elija un clúster que aloja sus instancias.

  4. En la página de Cluster : name (Clúster; nombre), elija la pestaña Infrastructure (Infraestructura). En Container instances (Instancias de contenedor) seleccione la casilla de verificación junto a cada instancia de contenedor que desee vaciar.

  5. Elija Acciones, Vaciar.