Determina lo stato delle attività di Amazon ECS utilizzando i controlli dello stato dei container - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Determina lo stato delle attività di Amazon ECS utilizzando i controlli dello stato dei container

Quando creai la definizione di un processo, puoi configurare un controllo dell'integrità per i container. I controlli dell'integrità sono comandi che vengono eseguiti localmente su un container e convalidano lo stato e la disponibilità delle applicazioni.

L'agente del container Amazon ECS monitora (e invia i report correlati) solo i controlli dell'integrità specificati nella definizione di attività. Amazon ECS non monitora i controlli dell'integrità di Docker incorporati in un'immagine del container e non specificati nella definizione del container. I parametri di controllo dello stato specificati in una definizione del container sostituiscono qualsiasi controllo dell'integrità Docker presente nell'immagine del container.

Quando un controllo dell'integrità è definito in una definizione di attività, il container esegue il processo di controllo dell'integrità all'interno del container, quindi valuta il codice di uscita per determinare lo stato dell'applicazione.

Il controllo dell'integrità comprende i seguenti parametri:

  • Comando: il comando eseguito dal container per determinare l'integrità. La matrice di stringhe può iniziare con CMD per eseguire direttamente gli argomenti del comando oppure con CMD-SHELL per eseguire il comando con la shell predefinita del container. Utilizza CMD-SHELL quando hai bisogno di funzionalità della shell come pipe, reindirizzamenti, concatenazione di comandi o espansione delle variabili di ambiente. Ad esempio, CMD-SHELL consente di utilizzare comandi come curl -f http://localhost/ || exit 1 nel punto in cui la shell interpreta l'operatore ||. Utilizza CMD per comandi semplici che non richiedono l'interpretazione della shell.

  • Intervallo: periodo di tempo (in secondi) tra ogni controllo dell'integrità.

  • Timeout: periodo di tempo (in secondi) per cui attendere che un controllo dell'integrità venga superato prima di considerarlo un errore.

  • Tentativi: il numero di volte in cui riprovare un controllo dell'integrità non riuscito prima che il container venga considerato non integro.

  • Periodo di inizio: periodo di tolleranza facoltativo entro il quale concedere ai container il tempo necessario per il bootstrap prima che i controlli dell'integrità non riusciti vengano conteggiati rispetto al numero massimo di nuovi tentativi.

    Se un controllo dello stato va a buon fine all'interno di startPeriod, il container è considerato integro e gli errori successivi vengono conteggiati rispetto al numero massimo di nuovi tentativi.

Per informazioni su come specificare un controllo dell'integrità nella definizione di un processo, consulta Health check.

Di seguito vengono descritti i valori dello stato di integrità possibili per un container:

  • HEALTHY: il controllo dell'integrità del container è stato superato correttamente.

  • UNHEALTHY: il controllo dell'integrità del container non è andato a buon fine.

  • UNKNOWN: il controllo dell'integrità del container è in fase di valutazione, non è stato definito alcun controllo dell'integrità o Amazon ECS non dispone dello stato di integrità del container.

I comandi per il controllo dell'integrità vengono eseguiti nel container. Pertanto, è necessario includere i comandi nell'immagine del container.

Il controllo dell'integrità si connette all'applicazione tramite l'interfaccia di loopback del container all'indirizzo localhost o 127.0.0.1. Il codice di uscita 0 indica che il processo ha avuto esito positivo, mentre un codice di uscita diverso da zero indica che ha avuto esito negativo.

Quando utilizzi i controlli dell'integrità del container, considera quanto segue:

  • I controlli dello stato del container richiedono la versione 1.17.0 o successiva dell'agente del container Amazon ECS.

  • I controlli dell'integrità dei container sono supportati per le attività Fargate se utilizzi una piattaforma Linux versione 1.1.0 o successiva o una piattaforma Windows versione 1.1.0 o successiva.

In che modo Amazon ECS determina lo stato delle attività

I container essenziali e con il comando per il controllo dell'integrità nella definizione dell'attività sono gli unici considerati per determinare lo stato dell'attività.

Le seguenti regole sono valutate in ordine:

  1. Se lo stato di un container essenziale è UNHEALTHY, lo stato dell'attività è UNHEALTHY.

  2. Se lo stato di un container essenziale è UNKNOWN, lo stato dell'attività è UNKNOWN.

  3. Se lo stato di tutti i container essenziali è HEALTHY, lo stato dell'attività è HEALTHY.

Considera il seguente esempio di integrità di un'attività con 2 container essenziali.

Integrità del container 1 Integrità del container 2 Integrità delle attività
UNHEALTHY UNKNOWN UNHEALTHY
UNHEALTHY HEALTHY UNHEALTHY
HEALTHY UNKNOWN UNKNOWN
HEALTHY HEALTHY HEALTHY

Considera il seguente esempio di integrità di un'attività con 3 container.

Integrità del container 1 Integrità del container 2 Integrità del container 3 Integrità delle attività
UNHEALTHY UNKNOWN UNKNOWN UNHEALTHY
UNHEALTHY UNKNOWN HEALTHY UNHEALTHY
UNHEALTHY HEALTHY HEALTHY UNHEALTHY
HEALTHY UNKNOWN HEALTHY UNKNOWN
HEALTHY UNKNOWN UNKNOWN UNKNOWN
HEALTHY HEALTHY HEALTHY HEALTHY

In che modo il controllo dell'integrità viene influenzato dalle disconnessioni degli agenti

Se l'agente del container Amazon ECS si disconnette dal servizio Amazon ECS, non causerà la transizione di un container a uno stato UNHEALTHY. Infatti, è stato progettato per garantire che i container rimangano in funzione durante il riavvio degli agenti o la temporanea indisponibilità. Lo stato del controllo dell'integrità è l'ultima risposta ricevuta dall'agente Amazon ECS, quindi se il container è stato considerato HEALTHY prima della disconnessione, tale stato rimarrà invariato fino alla riconnessione dell'agente e all'esecuzione di un altro controllo dell'integrità. Non ci sono ipotesi sullo stato dei controlli dell'integrità del container.