Pianificazione dei contenitori su Amazon ECS - 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à.

Pianificazione dei contenitori su Amazon ECS

Amazon Elastic Container Service (Amazon ECS) è un sistema di concorrenza ottimistico a stati condivisi che offre funzionalità di pianificazione flessibili per i carichi di lavoro containerizzati. I pianificatori di Amazon ECS utilizzano le stesse informazioni sullo stato del cluster fornite dall'API Amazon ECS per poter prendere decisioni di posizionamento adeguate.

Amazon ECS fornisce un pianificatore di servizi per processi e applicazioni di lunga durata. Offre inoltre la possibilità di eseguire attività autonome o attività pianificate per lavori in batch o attività a esecuzione singola. Puoi specificare le strategie di posizionamento dei processi e i vincoli per l'esecuzione dei processi più adatte alle tue esigenze. Ad esempio, puoi specificare se i processi vengono eseguiti in più zone di disponibilità o all'interno di una singola zona di disponibilità. Puoi inoltre integrare i processi con pianificatori di terze parti o personalizzati.

Pianificatore di servizi

Il service scheduler è adatto per servizi e applicazioni stateless a esecuzione prolungata. 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 i processi.

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. Se lo stato di integrità dell'attività di sostituzione è HEALTHY, il pianificatore di servizi interrompe l'attività non integra. Se 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 a desiredCount. 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.

Nota

Questo comportamento non si applica alle attività eseguite e gestite dai servizi che utilizzano il tipo di implementazione Aggiornamento in sequenza. Durante un aggiornamento in sequenza, il pianificatore di servizi interrompe prima le attività non integre e successivamente avvia le attività di sostituzione.

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 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 Daemon.

    Nota

    Le attività Fargate non supportano la strategia di pianificazione DAEMON

Il pianificatore di servizi, facoltativamente, assicura anche che i processi siano registrati nel load balancer Elastic Load Balancing. Puoi aggiornare i servizi gestiti dal pianificatore di servizi. Ciò potrebbe includere l'implementazione di una nuova definizione di attività o la modifica del numero di processi desiderati in esecuzione. Di default, il pianificatore di servizi distribuisce i processi su più zone di disponibilità. Puoi utilizzare vincoli e strategie di posizionamento dei processi per personalizzare le decisioni riguardo al posizionamento dei processi. Per ulteriori informazioni, consulta Servizi Amazon ECS.

Attività autonome

È possibile eseguire un'attività autonoma quando sono presenti processi come i lavori in batch che eseguono un lavoro e poi si interrompono. Ad esempio, puoi avere una chiamata di processo RunTask quando il lavoro è in una coda. L'attività recupera il lavoro dalla coda, esegue il lavoro e quindi si chiude. Grazie a RunTask, puoi consentire alla strategia di posizionamento dei processi di default di distribuire i processi in modo casuale in tutto il cluster. In questo modo si riduce al minimo la possibilità che una singola istanza ottenga un numero sproporzionato di processi. In alternativa, puoi utilizzare RunTask per personalizzare il modo in cui il pianificatore posiziona le attività utilizzando i vincoli e le strategie di posizionamento delle attività.

Pianificatori personalizzati

Con Amazon ECS, puoi creare i tuoi pianificatori o utilizzare pianificatori di terze parti. Per ulteriori informazioni, consulta Come creare uno scheduler personalizzato per Amazon ECS. Gli scheduler personalizzati utilizzano l'operazione StartTaskAPI per collocare attività su istanze di container specifiche all'interno del cluster.

Nota

I pianificatori personalizzati sono compatibili solo con i processi ospitati in istanze EC2. Se usi Amazon ECS su Fargate, StartTask l'API non funziona.