Drenare le istanze di container di 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à.

Drenare le istanze di container di Amazon ECS

In alcuni casi, potresti dover rimuovere un'istanza di container da un cluster; ad esempio, per eseguire aggiornamenti di sistema o ridurre verticalmente la capacità del cluster. Amazon ECS offre la possibilità di passare un'istanza di container a uno stato DRAINING. Questa operazione è nota come svuotamento dell'istanza di container. Quando un'istanza di container è impostata su DRAINING, Amazon ECS impedisce che venga pianificato il posizionamento di nuovi processi nell'istanza di container.

Comportamento di svuotamento per i servizi

Qualsiasi processo che fa parte di un servizio che si trova in uno stato PENDING viene arrestato immediatamente. Se nel cluster è disponibile la capacità dell'istanza di container, il pianificatore di servizi avvierà i processi di sostituzione. Se la capacità dell'istanza di container non è sufficiente, verrà inviato un messaggio di evento del servizio che indica il problema.

I processi che fanno parte di un servizio nell'istanza di container che si trovano in uno stato RUNNING passano a uno stato STOPPED. Lo scheduler di servizi prova a sostituire le attività in base al tipo di implementazione e ai parametri di configurazione dell'implementazione del servizio, minimumHealthyPercent e maximumPercent. Per ulteriori informazioni, consultare Servizi Amazon ECS e Parametri di definizione del servizio di Amazon ECS.

  • Se minimumHealthyPercent è inferiore al 100%, il pianificatore può ignorare desiredCount temporaneamente durante la sostituzione delle attività. Ad esempio, desiredCount sono quattro attività, un minimo del 50% permette al pianificatore di interrompere due attività esistenti prima di avviare due nuove attività. Se il minimo è del 100%, il pianificatore del servizio non può rimuovere le attività esistenti fino a quando le attività di sostituzione non vengono considerate integre. Se le attività per i servizi che non utilizzano un bilanciatore del carico sono in stato RUNNING, vengono considerate integre. Le attività per i servizi che utilizzano un bilanciatore del carico vengono considerate integre se sono in stato RUNNING e se il bilanciatore del carico considera integra l'istanza di container su cui sono ospitate.

    Importante

    Se utilizzi le istanze Spot e minimumHealthyPercent è maggiore o uguale al 100%, il servizio non avrà abbastanza tempo per sostituire l'attività prima della cessazione dell'istanza Spot.

  • Il parametro maximumPercent rappresenta un limite superiore al numero di attività in esecuzione durante la sostituzione delle attività. Ciò permette di definire le dimensioni del batch di sostituzione. Ad esempio, se desiredCount di quattro attività, un massimo di 200% avvia quattro nuove attività prima di interrompere le quattro attività affinché vengano esaurite (a condizione che le risorse del cluster necessarie per questa operazione siano disponibili). Se il massimo è 100%, le attività di sostituzione non possono avviarsi fino all'interruzione delle attività di esaurimento.

    Importante

    Se minimumHealthyPercent e maximumPercent sono entrambi al 100%, il servizio non può rimuovere i processi esistenti e non può inoltre avviare processi di sostituzione. Ciò impedisce il corretto svuotamento delle istanze del container e impedisce la creazione di nuove implementazioni.

Comportamento di svuotamento per processi autonomi

Qualsiasi processo autonomo nello stato PENDING o RUNNING non ne è influenzato; devi attenderne l'interruzione o interromperlo manualmente. L'istanza di container rimarrà nello DRAINING stato.

Comportamento di drenaggio per le istanze gestite da Amazon ECS

La terminazione di Amazon ECS Managed Instances garantisce transizioni agevoli dei carichi di lavoro, ottimizzando al contempo i costi e mantenendo lo stato del sistema. Il sistema di terminazione offre tre percorsi decisionali distinti per la terminazione delle istanze, ciascuno con caratteristiche temporali e profili di impatto sul cliente diversi.

Terminazione avviata dal cliente

Consente il controllo diretto sulla rimozione delle istanze quando bisogna rimuovere immediatamente le istanze di container dal servizio. Si esegue con il parametro di richiesta impostato su truederegister-container-instance. force Ciò significa che è necessaria la cessazione immediata nonostante i carichi di lavoro in esecuzione.

Terminazione dello stato di inattività avviata dal sistema

Amazon ECS Managed Instances monitora continuamente e ottimizza in modo proattivo i costi chiudendo le istanze di container Amazon ECS inattive che non eseguono alcuna attività. ECS utilizza un ritardo euristico per dare alle istanze di container la possibilità di acquisire attività appena avviate prima di essere terminate. Questo può essere personalizzato con il parametro di configurazione del provider di capacità di scaleInAfter Amazon ECS Managed Instances.

Terminazione dell'aggiornamento dell'infrastruttura

Amazon ECS Managed Instances gestisce e aggiorna automaticamente il software sulle istanze di container gestite per garantire sicurezza e conformità mantenendo al contempo la disponibilità del carico di lavoro. Per ulteriori informazioni, consulta la sezione Applicazione di patch in Amazon ECS Managed Instances.

Il sistema di terminazione implementa un approccio in due fasi che bilancia la continuità del carico di lavoro e i requisiti di gestione dell'infrastruttura.

Fase 1: periodo di completamento graduale

Durante questa fase, il sistema implementa strategie di drenaggio graduale che danno priorità alla continuità del carico di lavoro. Le attività di assistenza vengono eseguite regolarmente tramite le normali attività di pianificazione di Amazon ECS. Le attività autonome continuano a funzionare perché potrebbero completarsi naturalmente. Il sistema controlla che tutte le attività raggiungano lo stato di arresto tramite attività di completamento naturali.

Fase 2: applicazione di scadenze rigide

Quando il completamento graduale non consente di raggiungere gli obiettivi di terminazione entro tempi accettabili, il sistema applica una scadenza rigida. Solitamente, la scadenza rigida è fissata al momento dell'avvio del drenaggio più sette giorni, in modo da garantire un tempo sufficiente per il completamento dell'operazione nel rispetto dei requisiti operativi. L'applicazione prevede delle procedure automatiche di annullamento forzato della registrazione e l'immediata terminazione di tutte le attività rimanenti, indipendentemente dal loro stato di completamento.

Un'istanza di container ha completato lo svuotamento quando tutti i processi in esecuzione sull'istanza passano a uno stato STOPPED. L'istanza di container rimane nello stato DRAINING finché non viene nuovamente attivata o eliminata. Puoi verificare lo stato delle attività sull'istanza del contenitore utilizzando l'ListTasksoperazione con il containerInstance parametro per ottenere un elenco di attività sull'istanza seguita da un'DescribeTasksoperazione con l'Amazon Resource Name (ARN) o l'ID di ciascuna attività per verificare lo stato dell'attività.

Quando desideri che l'istanza di container avvi nuovamente i processi di hosting, puoi modificare lo stato dell'istanza di container da DRAINING a ACTIVE. Lo scheduler del servizio Amazon ECS considera nuovamente l'istanza di container per il posizionamento dell'attività.

Procedura

Le seguenti fasi possono essere utilizzate per impostare lo svuotamento di un'istanza di container utilizzando la nuova AWS Management Console.

Puoi anche utilizzare l'azione UpdateContainerInstancesStateAPI o il update-container-instances-statecomando per modificare lo stato di un'istanza del contenitore inDRAINING.

AWS Management Console
  1. Apri la console alla https://console.aws.amazon.com/ecs/v2.

  2. Nel pannello di navigazione scegliere Cluster.

  3. Alla pagina Clusters (Cluster), scegli un cluster che ospita le istanze.

  4. Nella name pagina Cluster:, scegli la scheda Infrastruttura. Quindi, in Container instances (Istanze di container) e seleziona la casella di controllo per ciascuna istanza di container che desideri svuotare.

  5. Scegli Operazioni, Drain.