In che modo è possibile risolvere i problemi relativi alle attività di Amazon ECS che richiedono molto tempo per interrompersi quando l'istanza di container è impostata su SVUOTAMENTO?

3 minuti di lettura
0

La mia attività Amazon Elastic Container Service (Amazon ECS) impiega molto tempo per passare allo stato INTERROTTO. Oppure, la mia attività Amazon ECS è bloccata nello stato IN ESECUZIONE quando l'istanza di container è impostata su SVUOTAMENTO. Come posso risolvere questo problema?

Breve descrizione

Quando imposti un'istanza ECS su SVUOTAMENTO, Amazon ECS esegue le seguenti operazioni:

  • Impedisce la pianificazione di nuove attività da posizionare sull'istanza di container
  • Interrompe le attività sull'istanza di container che si trovano nello stato IN ESECUZIONE

Le attività possono essere bloccate nello stato IN ESECUZIONE o impiegare più tempo per passare allo stato INTERROTTO a causa di problemi con i parametri o le attività di configurazione. Per risolvere questi problemi, considera le seguenti opzioni:

Risoluzione

Verificare che i parametri DeploymentConfiguration siano impostati correttamente

  1. Apri la console Amazon ECS.
  2. Nel pannello di navigazione, scegli Cluster, quindi scegli il cluster in cui si sta svuotando l'istanza di container.
  3. Scegli la scheda Istanze ECS, quindi scegli SVUOTAMENTO nella sezione Stato.
  4. Scegli la tua istanza di container, quindi trova il servizio per le attività che si stanno svuotando o che richiedono molto tempo a svuotarsi.
  5. Scegli la scheda Servizi, seleziona il servizio, quindi scegli Distribuzioni.
  6. Controlla i valori minimumHealthyPercent e maximumPercent.
    Nota: le attività di servizio sull'istanza di container che si trovano IN ESECUZIONE vengono interrotte e sostituite in base ai parametri della configurazione di implementazione del servizio: minimumHealthyPercent e maximumPercent.

Verificare che il valore del ritardo di annullamento della registrazione sia impostato correttamente

Importante: i passaggi seguenti si applicano solo ai servizi che utilizzano l'Application Load Balancer o il Network Load Balancer. Se il tuo servizio utilizza il Classic Load Balancer, controlla i valori di svuotamento della connessione.

  1. Apri la console Amazon ECS.
  2. Nel pannello di navigazione, scegli Cluster, quindi scegli il cluster in cui si sta svuotando l'istanza di container.
  3. Scegli la scheda Servizi, quindi seleziona il servizio con lo stack bloccato IN ESECUZIONE.
  4. Scegli Nome gruppo di destinazione.
  5. Nella scheda Dettagli, scorri verso il basso e seleziona la casella di controllo Ritardo di annullamento della registrazione.

Verificare che il valore ECS_CONTAINER_STOP_TIMEOUT sia impostato correttamente

  1. Connettiti all'istanza di container tramite SSH.
  2. Esegui il comando docker inspect ecs-agent --format '{{json .Config.Env}}'.
  3. Controlla se esiste un valore per ECS_CONTAINER_STOP_TIMEOUT.
    Nota: ECS_CONTAINER_STOP_TIMEOUT è un parametro dell'agente del container ECS che definisce la quantità di tempo che Amazon ECS attende prima di terminare un container. Il tempo inizia a scorrere quando un'attività viene interrotta. Se non vedi il parametro ECS_CONTAINER_STOP_TIMEOUT nell'output dopo aver eseguito il comando nel passaggio 2, significa che Amazon ECS sta utilizzando il valore predefinito di 30s.

Individuare altri problemi relativi alle attività

  1. Connettiti all'istanza di container tramite SSH.
  2. Verifica che il daemon Docker e l'agente del container Amazon ECS siano in esecuzione per le tue AMI Amazon Linux 1 o Amazon Linux 2.
  3. Controlla i log di applicazione in base al driver di registro impostato da logConfiguration.
    Nota: ad esempio, se le tue attività utilizzano il driver di registro awslogs, controlla che Amazon CloudWatch Logs non presenti problemi.

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa