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à.
ECSServizi Amazon
Puoi utilizzare un ECS servizio Amazon per eseguire e gestire contemporaneamente un numero specifico di istanze di una definizione di attività in un ECS cluster Amazon. Se una delle tue attività fallisce o si interrompe, Amazon ECS Service Scheduler avvia un'altra istanza della definizione dell'attività per sostituirla. Ciò consente di mantenere il numero desiderato di attività nel servizio.
A scelta, puoi eseguire il tuo servizio con un load balancer. Il load balancer distribuisce il traffico nelle attività associate al servizio.
Ti consigliamo di utilizzare il pianificatore di servizi per le applicazioni e i servizi stateless di lunga durata. Il pianificatore di servizi garantisce che venga seguita la strategia di pianificazione specificata e ripianifica i processi qualora un processo dia esito negativo. Ad esempio, se l'infrastruttura sottostante riporta un errore, il pianificatore del servizio può riprogrammare un'attività. Puoi applicare vincoli e strategie di posizionamento delle attività per personalizzare il modo in cui il pianificatore posiziona e termina le attività. Se un processo in un servizio viene arresto, il pianificatore avvia un nuovo processo per sostituirlo. Questo processo continua finché il servizio non raggiunge il numero di attività desiderato in base alla strategia di pianificazione utilizzata dal servizio. La strategia di pianificazione del servizio è indicata anche come tipo di servizio.
Il pianificatore di servizi sostituisce inoltre le attività ritenute non integre dopo l'esito negativo di un controllo dell'integrità del container o di un sistema di bilanciamento del carico del gruppo di destinazione. Questa sostituzione dipende dai parametri di definizione del servizio maximumPercent
e desiredCount
. Se un'attività è contrassegnata come non integra, il pianificatore di servizi avvierà innanzitutto un'attività di sostituzione. Quindi, accade quanto segue.
Se lo stato di integrità dell'attività sostitutiva è pari a
HEALTHY
, l'utilità di pianificazione del servizio interrompe l'attività non integraSe lo stato di integrità dell'attività di sostituzione è
UNHEALTHY
, il pianificatore interromperà l'attività di sostituzione non integra o l'attività esistente non integra per far sì che il numero totale delle attività sia pari adesiredCount
.
Se il parametro maximumPercent
impedisce al pianificatore di avviare un'attività di sostituzione, il pianificatore interromperà un'attività non integra alla volta, in modo casuale, per liberare spazio, e poi avvierà un'attività di sostituzione. Il processo di avvio e arresto continua fino a quando tutte le attività non integre vengono sostituite con attività integre. Dopo aver sostituito tutte le attività non integre e aver avviato solo quelle integre, se il numero totale delle attività supera desiredCount
, le attività integre vengono interrotte casualmente fino a quando il numero totale delle attività è pari a desiredCount
. Per ulteriori informazioni sui parametri maximumPercent
e desiredCount
, consulta Parametri di definizione del servizio.
Il pianificatore del servizio include una logica che limita la frequenza dei tentativi di riavvio delle attività se queste non riescono a riavviarsi ripetutamente. Se un'attività si interrompe senza essere entrata in uno stato RUNNING
, il pianificatore del servizio inizia a rallentare in modo incrementale i tentativi di avvio ed emette un messaggio di evento del servizio. Questo comportamento previene l'utilizzo di risorse non necessarie per le attività non riuscite prima che sia risolto il problema. Dopo l'aggiornamento del servizio, il pianificatore del servizio riprende il normale comportamento. Per ulteriori informazioni, consulta Logica ECS di accelerazione del servizio Amazon e Visualizzazione dei messaggi relativi agli eventi ECS del servizio Amazon.
Sono disponibili due strategie del pianificatore del servizio:
-
REPLICA
: la strategia di pianificazione delle repliche colloca e gestisce il numero desiderato di attività nel cluster. Di default, il pianificatore del servizio distribuisce le attività tra le zone di disponibilità. Puoi utilizzare vincoli e strategie di posizionamento delle attività per personalizzare le decisione riguardo al posizionamento delle attività. Per ulteriori informazioni, consulta Strategia di replica. -
DAEMON
: la strategia di pianificazione del daemon distribuisce esattamente un'attività in ciascuna istanza di container attiva, che soddisfa tutti i vincoli di posizionamento delle attività specificati nel cluster. Quando si utilizza questa strategia, non è necessario specificare un numero di attività desiderato o una strategia di posizionamento delle attività, né utilizzare le policy di Auto Scaling del servizio. Per ulteriori informazioni, consulta Strategia daemon.Nota
I processi Fargate non supportano la strategia di pianificazione
DAEMON
Strategia daemon
La strategia di pianificazione daemon distribuisce esattamente un'attività in ciascuna istanza di container attiva che soddisfa tutti i vincoli di posizionamento delle attività specificati nel cluster. Il service scheduler valuta i vincoli di posizionamento delle attività per le attività in esecuzione e interrompe le attività che non soddisfano i vincoli di posizionamento. Quando si utilizza questa strategia, non è necessario specificare il numero desiderato di attività, una strategia di posizionamento delle attività o utilizzare le politiche di Service Auto Scaling.
Amazon ECS riserva le risorse di calcolo delle istanze di containerCPU, tra cui memoria e interfacce di rete, per le attività del demone. Quando avvii un servizio daemon su un cluster con altri servizi di replica, Amazon ECS dà la priorità all'attività del demone. Ciò significa che l'attività daemon è la prima attività da avviare sulle istanze e l'ultima attività da interrompere dopo l'interruzione di tutte le attività di replica. La strategia garantisce che le risorse non vengano utilizzate da attività di replica in sospeso e che siano disponibili per le attività del daemon.
Il pianificatore del servizio del daemon non posiziona alcuna attività sulle istanze con stato DRAINING
. Se un'istanza di container passa a uno stato DRAINING
, le attività daemon in esecuzione su di essa vengono arrestate. Il pianificatore del servizio inoltre monitora l'aggiunta di nuove istanze di container al cluster, alle quali aggiunge le attività daemon.
Quando si specifica una configurazione di distribuzione, il valore del maximumPercent
parametro deve essere 100
(specificato in percentuale), che è il valore predefinito utilizzato se non è impostato. Il valore predefinito per il minimumHealthyPercent
parametro è 0
(specificato come percentuale).
Quando modifichi i vincoli di posizionamento per il servizio daemon devi riavviare il servizio. Amazon aggiorna ECS dinamicamente le risorse riservate alle istanze idonee per l'attività daemon. Per le istanze esistenti, il pianificatore prova a posizionare l'attività sull'istanza.
Una modifica della dimensione del processo o della prenotazione della risorsa del container nella definizione di attività avvia una nuova implementazione. Una nuova distribuzione inizia anche quando si aggiorna un servizio o si imposta una revisione diversa della definizione dell'attività. Amazon ECS raccoglie gli aggiornamenti CPU e le prenotazioni di memoria per il daemon, quindi blocca tale capacità per l'attività daemon.
Se ci sono risorse insufficienti per uno dei casi precedenti, si verifica quanto segue:
-
Il posizionamento del processo ha esito negativo.
-
Viene generato un evento. CloudWatch
-
Amazon ECS continua a provare a pianificare l'attività sull'istanza in attesa che le risorse siano disponibili.
-
Amazon ECS libera tutte le istanze riservate che non soddisfano più i criteri dei vincoli di posizionamento e interrompe le attività daemon corrispondenti.
La strategia di pianificazione del daemon può essere utilizzata nei seguenti casi:
-
Esecuzione di container di applicazioni
-
Esecuzione di container di supporto per processi di registrazione, monitoraggio e traccia
Le attività che utilizzano il tipo di avvio Fargate oppure i tipi di controller di implementazione CODE_DEPLOY
o EXTERNAL
non supportano la strategia di pianificazione del daemon.
Quando il pianificatore di servizi arresta i processi in esecuzione, prova a mantenere il bilanciamento tra le zone di disponibilità nel cluster. Il pianificatore utilizza la logica seguente:
-
Se è stata definita una strategia di posizionamento, utilizzare tale strategia per selezionare le attività da terminare. Ad esempio, se per un servizio è definita una strategia di distribuzione tra zone di disponibilità, viene selezionata un'attività che lascia le attività rimanenti con la migliore distribuzione.
-
Se non è stata definita una strategia di posizionamento, mantieni il bilanciamento tra le zone di disponibilità nel cluster con la logica seguente:
-
Ordina le istanze di container valide. Dai priorità alle istanze che hanno il maggior numero di attività in esecuzione per questo servizio nella rispettiva zona di disponibilità. Ad esempio, se nella zona A è presente un'attività del servizio in esecuzione e nelle zone B e C ne sono presenti due, le istanze di container nella zona B o C sono considerate ottimali per l'arresto.
-
Arresta l'attività del servizio in un'istanza di container in una zona di disponibilità ottimale in base alle fasi precedenti. Dai la priorità alle istanze di container con il maggior numero di attività in esecuzione per questo servizio.
-
Strategia di replica
La strategia di pianificazione delle repliche posiziona e gestisce il numero desiderato di attività nel cluster.
Per un servizio che esegue attività su Fargate, quando il pianificatore di servizi avvia nuove attività o arresta quelle in esecuzione, il pianificatore fa del suo meglio per mantenere il bilanciamento tra le zone di disponibilità. Non è necessario specificare strategie di posizionamento delle attività o vincoli.
Quando crei un servizio che esegue attività su EC2 istanze, puoi facoltativamente specificare strategie e vincoli di posizionamento delle attività per personalizzare le decisioni di posizionamento delle attività. Se non vengono specificati vincoli o strategie di posizionamento delle attività, per impostazione predefinita il pianificatore del servizio distribuisce le attività tra le zone di disponibilità. Il pianificatore di servizi utilizza la logica seguente:
-
Determina quali istanze del contenitore nel cluster possono supportare la definizione delle attività del servizio (ad esempio, attributi obbligatori, di memoriaCPU, porte e dell'istanza del contenitore).
-
Determina quali istanze di container soddisfano gli eventuali vincoli di posizionamento definiti per il servizio.
-
Se disponi di un servizio di replica che dipende da un servizio daemon (ad esempio, un'attività del daemon log router che deve essere eseguita prima che le attività possano utilizzare la registrazione), crea un vincolo di posizionamento delle attività che assicuri che le attività del servizio daemon vengano posizionate sull'EC2istanza prima delle attività del servizio di replica. Per ulteriori informazioni, consulta Esempi di vincoli di collocamento delle ECS attività di Amazon.
-
Se hai definito una strategia di posizionamento, utilizzala per selezionare un'istanza tra le candidate rimanenti.
-
Se non è stata definita una strategia di posizionamento, bilancia le attività tra le zone di disponibilità nel cluster con la logica seguente:
-
Ordina le istanze di container valide. Dai priorità alle istanze che hanno il minor numero di attività in esecuzione per questo servizio nella rispettiva zona di disponibilità. Ad esempio, se nella zona A è presente un'attività del servizio in esecuzione e nelle zone B e C nessuna, le istanze di container valide nella zona B o C sono considerate ottimali per il posizionamento.
-
Posiziona la nuova attività del servizio in un'istanza di container valida in una zona di disponibilità ottimale in base alle fasi precedenti. Dai la priorità alle istanze di container con il minor numero di attività in esecuzione per questo servizio.
-