Salta al contenuto

Come posso risolvere i problemi di un'attività di Amazon ECS bloccata in un ciclo di provisioning?

4 minuti di lettura
0

Le mie attività Amazon Elastic Container Service (Amazon ECS) sono bloccate nello stato PROVISIONING.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Per risolvere il problema, visualizza gli eventi dei servizi Amazon ECS per il servizio interessato per verificare le attività di distribuzione e gli errori recenti. Utilizza i modelli di eventi e i messaggi di errore per determinare se il problema è correlato a problemi di capacità, rete o configurazione. Per maggiori dettagli sugli errori di avvio delle attività, controlla i messaggi di errore dell'attività interrotta per individuare eventuali errori TaskFailedToStart.

Verifica la configurazione del provider di capacità

Per verificare se il gruppo Amazon EC2 Auto Scaling del provider di capacità raggiunge la capacità massima durante il provisioning delle attività, esegui questo comando AWS CLI describe-auto-scaling-groups:

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: sostituisci your-asg-name con il nome del tuo gruppo EC2 Auto Scaling.

Per visualizzare tutte le istanze di container e il relativo stato, esegui questo comando list-container-instances:

aws ecs list-container-instances \
    --cluster your-cluster-name \
    --status ACTIVE \
    --query 'containerInstanceArns[]'

Per aumentare la capacità del gruppo Auto Scaling, esegui questo comando update-auto-scaling-group:

aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name your-asg-name \
--max-size new-max-size

Nota: sostituisci your-asg-name con il nome del tuo gruppo EC2 Auto Scaling e new-max-size con la dimensione del gruppo EC2 Auto Scaling aggiornata.

Inoltre, assicurati che l'agente Amazon ECS sia in esecuzione e integro sulle istanze di container.

Per risolvere ulteriormente gli errori del provider di capacità, consulta Come posso risolvere i problemi che si verificano quando provo a configurare un nuovo provider di capacità o ad aggiornare un provider di capacità esistente per il mio cluster Amazon ECS?

Verifica la configurazione del servizio e il dimensionamento delle attività

Assicurati che il numero desiderato del servizio corrisponda alla capacità dell'infrastruttura disponibile in termini di CPU e memoria nelle istanze di container. Per visualizzare il numero desiderato e il numero in esecuzione del servizio, esegui questo comando describe-services:

aws ecs describe-services \
--cluster your-cluster-name \
--services your-service-name \
--query 'services[].{desiredCount:desiredCount,runningCount:runningCount,pendingCount:pendingCount}'

Nota: sostituisci your-cluster-name con il nome del tuo cluster e your-service-name con il nome del tuo servizio.

Per aggiornare il numero desiderato del servizio, esegui questo comando update-service:

aws ecs update-service \
--cluster your-cluster-name \
--service your-service-name \
--desired-count new-count
--force-new-deployment

Nota: sostituisci your-cluster-name con il nome del tuo cluster, your-service-name con il tuo nome del servizio e new-count con il numero di attività desiderato. L'opzione**--force-new-deployment** forza l'aggiornamento del servizio.

Verifica le quote di servizio

Se superi le quote di servizio Amazon ECS, potresti riscontrare problemi con le attività. Per risolvere i problemi relativi alle quote di servizio, consulta Come posso risolvere i problemi relativi alle quote di servizio Amazon ECS?

Verifica la configurazione di rete

Controlla le regole del gruppo di sicurezza delle attività e assicurati che la sottorete abbia indirizzi IP disponibili. Per le sottoreti private senza gateway NAT, configura gli endpoint VPC richiesti per la configurazione. I gruppi di sicurezza degli endpoint VPC devono consentire il traffico in entrata dal CIDR della sottorete delle attività.

I gruppi di sicurezza devono inoltre consentire il seguente traffico:

  • Traffico HTTPS (porta 443) in uscita verso Internet o gateway NAT per estrarre immagini dei container.
  • Traffico in uscita verso gli endpoint VPC che utilizzi.
  • Traffico in entrata dal gruppo di sicurezza dell'Application Load Balancer per le configurazioni che utilizzano un Application Load Balancer.
  • Traffico in entrata tra container che devono comunicare.

Per verificare se la sottorete del servizio Amazon ECS ha l'indirizzo IP richiesto, esegui questo comando describe-subnets:

aws ec2 describe-subnets \
    --subnet-ids subnet-abcde \
    --query 'Subnets[].{SubnetId:SubnetId,AvailableIPs:AvailableIpAddressCount,TotalIPs:CidrBlock}'

Nota: sostituisci subnet-abcde con l'ID della tua sottorete.

Assicurati di rispettare i requisiti della modalità di rete dell'attività:

  • Per la modalità awsvpc, assicurati che ogni attività abbia un'interfaccia di rete elastica dedicata.
    Nota: esiste una quota massima di interfacce di rete per ogni tipo di istanza. Assicurati che le istanze di container dispongano di punti di collegamento dell'interfaccia di rete disponibili per le nuove attività.
  • Per la modalità bridge, assicurati che il bridge docker0 abbia un numero sufficiente di indirizzi IP nel suo pool.
  • Per la modalità host, non esistono vincoli specifici relativi alle risorse di rete. Tuttavia, possono verificarsi conflitti di porte quando più attività utilizzano la stessa porta host.

Informazioni correlate

Risoluzione dei problemi legati ad Amazon ECS

Service Quotas di Amazon ECS

Scala automaticamente il tuo servizio Amazon ECS

Progetta la tua soluzione per Amazon ECS

AWS UFFICIALEAggiornata un anno fa