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 crei una definizione di attività, puoi configurare un controllo dello stato dei tuoi contenitori. I controlli di integrità sono comandi eseguiti localmente su un contenitore 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 dello stato Docker presente nell'immagine del container.
Quando un controllo di integrità è definito in una definizione di attività, il contenitore esegue il processo di controllo dello stato all'interno del contenitore, quindi valuta il codice di uscita per determinare lo stato dell'applicazione.
Il controllo dello stato di salute comprende i seguenti parametri:
-
Comando: il comando che il contenitore esegue per determinare se è integro. La matrice di stringhe può iniziare con
CMD
per eseguire direttamente gli argomenti del comando oppure conCMD-SHELL
per eseguire il comando con la shell predefinita del container. UtilizzaloCMD-SHELL
quando hai bisogno di funzionalità della shell come pipe, reindirizzamenti, concatenamento di comandi o espansione delle variabili di ambiente. Ad esempio,CMD-SHELL
consente di utilizzare comandi come ilcurl -f http://localhost/ || exit 1
punto in cui la shell interpreta l'operatore.||
CMD
Utilizzatelo per comandi semplici che non richiedono l'interpretazione della shell. -
Intervallo: il periodo di tempo (in secondi) tra ogni controllo sanitario.
-
Timeout: il periodo di tempo (in secondi) di attesa dell'esito positivo di un controllo sanitario prima che venga considerato un fallimento.
-
Tentativi: il numero di volte in cui si ripete un controllo di integrità non riuscito prima che il contenitore venga considerato inintegro.
-
Periodo di inizio: il periodo di prova opzionale per concedere ai container il tempo necessario per riavviarsi prima che i controlli di integrità non riusciti vengano conteggiati ai fini del 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 dello stato di salute nella definizione di un'attività, vedere. Controllo dello stato
Di seguito vengono descritti i possibili valori dello stato di salute di un contenitore:
-
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 di controllo dello stato di salute vengono eseguiti sul contenitore. Pertanto è necessario includere i comandi nell'immagine del contenitore.
Il controllo di integrità si connette all'applicazione tramite l'interfaccia di loopback del contenitore all'indirizzo localhost
o. 127.0.0.1
Un codice di uscita pari a 0
indica l'esito positivo, mentre un codice di uscita diverso da zero indica un errore.
Quando utilizzi i controlli dello stato dei contenitori, 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 dello stato dei container sono supportati per le attività Fargate se si utilizza una versione della piattaforma Linux
1.1.0
o superiore o una versione della piattaforma Windows o superiore1.1.0
In che modo Amazon ECS determina lo stato delle attività
I contenitori essenziali e con il comando Health Check nella definizione dell'attività sono gli unici considerati per determinare lo stato dell'attività.
Le seguenti regole vengono valutate nell'ordine:
-
Se lo stato di un contenitore essenziale è
UNHEALTHY
, lo stato dell'attività èUNHEALTHY
. -
Se lo stato di un contenitore essenziale è
UNKNOWN
, lo stato dell'attività èUNKNOWN
. -
Se lo stato di tutti i contenitori essenziali è
HEALTHY
, lo stato dell'attività èHEALTHY
.
Considerate il seguente esempio di integrità di un'attività con 2 contenitori essenziali.
Contenitore 1: salute | Salute del contenitore 2 | Stato dell'attività |
---|---|---|
UNHEALTHY |
UNKNOWN |
UNHEALTHY |
UNHEALTHY |
HEALTHY |
UNHEALTHY |
HEALTHY |
UNKNOWN |
UNKNOWN |
HEALTHY |
HEALTHY |
HEALTHY |
Considerate il seguente esempio di integrità di un'attività con 3 contenitori.
Salute del contenitore 1 | Salute del contenitore 2 | Salute del contenitore 3 | Stato dell'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 i controlli sanitari vengono influenzati dalle disconnessioni degli agenti
Se l'agente container Amazon ECS si disconnette dal servizio Amazon ECS, ciò non causerà la transizione del container a uno stato. UNHEALTHY
Questo è stato progettato per garantire che i contenitori rimangano in funzione durante il riavvio degli agenti o la temporanea indisponibilità. Lo stato del controllo di 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 dello stato. Non ci sono ipotesi sullo stato dei controlli dell'integrità del container.