Mis tareas de Amazon Elastic Container Service (Amazon ECS) están bloqueadas en el estado APROVISIONAMIENTO.
Solución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Para solucionar este problema, consulta los eventos del servicio Amazon ECS del servicio afectado para comprobar si hay actividades de despliegue y errores recientes. Utiliza los patrones de eventos y los mensajes de error para determinar si el problema está relacionado con problemas de capacidad, redes o configuración. Para obtener más información sobre los errores al iniciar tareas, consulta los mensajes de error de tareas detenidas para ver si hay errores de TaskFailedToStart.
Comprobación de la configuración del proveedor de capacidad
Para comprobar si el grupo de Amazon EC2 Auto Scaling del proveedor de capacidad alcanza su capacidad máxima durante el aprovisionamiento de tareas, ejecuta el siguiente comando describe-auto-scaling-groups de la AWS CLI:
aws autoscaling describe-auto-scaling-groups \
--auto-scaling-group-names your-asg-name \
--query 'AutoScalingGroups[].{DesiredCapacity:DesiredCapacity,MaxSize:MaxSize,RunningInstances:Instances[?LifecycleState==InService].InstanceId|length}'
Nota: Sustituye your-asg-name por el nombre del grupo de EC2 Auto Scaling.
Para ver todas las instancias de contenedor y su estado, ejecuta el siguiente comando list-container-instances:
aws ecs list-container-instances \
--cluster your-cluster-name \
--status ACTIVE \
--query 'containerInstanceArns[]'
Para aumentar la capacidad del grupo de escalamiento automático, ejecuta el siguiente comando update-auto-scaling-group:
aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name your-asg-name \
--max-size new-max-size
Nota: Sustituye your-asg-name por el nombre del grupo de EC2 Auto Scaling y new-max-size por el tamaño del grupo de EC2 Auto Scaling actualizado.
Además, asegúrate de que el agente de Amazon ECS esté en ejecución y en buen estado en las instancias de contenedor.
Para seguir solucionando los errores del proveedor de capacidad, consulta ¿Cómo soluciono los problemas cuando intento configurar un nuevo proveedor de capacidad o actualizar un proveedor de capacidad existente para mi clúster de Amazon ECS?
Comprobación de la configuración del servicio y el escalamiento de tareas
Asegúrate de que el recuento deseado del servicio coincida con la capacidad de infraestructura disponible en CPU y memoria en las instancias de contenedor. Para ver el recuento deseado del servicio y el recuento en ejecución, ejecuta el siguiente comando describe-services:
aws ecs describe-services \
--cluster your-cluster-name \
--services your-service-name \
--query 'services[].{desiredCount:desiredCount,runningCount:runningCount,pendingCount:pendingCount}'
Nota: Sustituye your-cluster-name por el nombre del clúster y your-service-name por el nombre del servicio.
Para actualizar el recuento deseado del servicio, ejecuta el siguiente comando update-service:
aws ecs update-service \
--cluster your-cluster-name \
--service your-service-name \
--desired-count new-count
--force-new-deployment
Nota: Sustituye your-cluster-name por el nombre del clúster, your-service-name por el nombre del servicio y new-count por el recuento de tareas deseado. La opción --force-new-deployment fuerza la actualización del servicio.
Comprobación de las cuotas de servicio
Si superas las cuotas de servicio Amazon ECS, es posible que tengas problemas con las tareas. Para solucionar los problemas de cuota de servicio, consulta ¿Cómo soluciono los problemas de cuota de servicio de Amazon ECS?
Comprobación de la configuración de red
Comprueba las reglas del grupo de seguridad de tareas y asegúrate de que la subred tenga direcciones IP disponibles. Para las subredes privadas sin NAT Gateway, configura los puntos de enlace de VPC necesarios para la configuración. Los grupos de seguridad de puntos de enlace de VPC deben permitir el tráfico entrante desde el CIDR de la subred de tareas.
Tus grupos de seguridad también deben permitir el siguiente tráfico:
- Tráfico HTTPS saliente (puerto 443) a puertas de enlace de NAT para extraer imágenes de contenedores.
- Tráfico saliente a los puntos de enlace de VPC que utilizas.
- Tráfico entrante del grupo de seguridad del equilibrador de carga de aplicación para configuraciones que usan un equilibrador de carga de aplicación.
- Tráfico entrante entre contenedores que necesitan comunicarse.
Para comprobar si la subred del servicio Amazon ECS tiene la dirección IP requerida, ejecuta el siguiente comando describe-subnets:
aws ec2 describe-subnets \
--subnet-ids subnet-abcde \
--query 'Subnets[].{SubnetId:SubnetId,AvailableIPs:AvailableIpAddressCount,TotalIPs:CidrBlock}'
Nota: Sustituye subnet-abcde por tu ID de subred.
Asegúrate de cumplir con los requisitos del modo de red de la tarea:
- Para el modo awsvpc, asegúrate de que cada tarea tenga una interfaz de red elástica dedicada.
Nota: Hay una cuota máxima de interfaces de red para cada tipo de instancia. Asegúrate de que las instancias de contenedor tengan puntos de conexión de interfaz de red disponibles para las nuevas tareas.
- En el caso del modo bridge, asegúrate de que el puente docker0 tenga suficientes direcciones IP en su grupo.
- En el caso del modo host, no hay restricciones específicas de recursos de red. Sin embargo, pueden producirse conflictos de puertos cuando varias tareas utilizan el mismo puerto host.
Información relacionada
Solución de problemas de Amazon ECS
Cuotas de servicio de Amazon ECS
Escalamiento automático del servicio Amazon ECS
Arquitectura de la solución para Amazon ECS