Distribuisci i servizi Amazon ECS sostituendo le attività - Amazon Elastic Container Service

Distribuisci i servizi Amazon ECS sostituendo le attività

Quando viene creato un servizio che utilizza il tipo di implementazione con aggiornamento in sequenza (ECS), il pianificatore del servizio Amazon ECS sostituisce le attività correntemente in esecuzione con nuove attività. Il numero di attività che Amazon ECS aggiunge o rimuove durante un aggiornamento in sequenza è controllato dalla configurazione dell'implementazione del servizio.

Amazon ECS utilizza i seguenti parametri per determinare il numero di attività:

  • La minimumHealthyPercent rappresenta il limite inferiore del numero di processi che devono essere in esecuzione per un servizio durante un'implementazione o quando un'istanza di container è in fase di svuotamento, come percentuale del numero desiderato di processi per il servizio. Questo valore viene arrotondato per eccesso. Ad esempio, se la percentuale minima di integrità è 50, il numero di processi desiderato è quattro, il pianificatore può interrompere due processi esistenti prima di avviare due nuovi processi. Allo stesso modo, se la percentuale di integrità minima è 75% e il numero di processi desiderato è due, il pianificatore non può interrompere alcun processo a causa del valore risultante che è anche due.

    Se le attività diventano non integre, il pianificatore dei servizi Amazon ECS avvierà prima le attività sostitutive e manterrà le attività minimumHealthyPercent finché quelle sostitutive diventeranno integre. Man mano che le attività sostitutive vengono avviate e diventano integre, quelle non integre verranno gradualmente interrotte.

  • La maximumPercent rappresenta il limite superiore del numero di processi che devono essere in esecuzione per un servizio durante un'implementazione o quando un'istanza di container è in fase di svuotamento, come percentuale del numero desiderato di processi per il servizio. Questo valore viene arrotondato per difetto. Ad esempio, se la percentuale massima è 200 e il numero di processi desiderato è quattro, il pianificatore può avviare quattro nuovi processi prima di avviare arrestare i quattro processi esistenti. Allo stesso modo, se la percentuale di integrità massima è 125 e il numero di processi desiderato è tre, il pianificatore non può interrompere alcun processo a causa del valore risultante che è esso stesso tre.

Importante

Quando si imposta una percentuale di integrità minima o massima, è necessario assicurarsi che lo scheduler possa arrestare o avviare almeno un'attività quando viene attivata un'implementazione. Se il servizio dispone di un'implementazione bloccata a causa di una configurazione di implementazione non valida, verrà inviato un messaggio di evento del servizio. Per ulteriori informazioni, consultare service (nome-servizio) non è riuscito ad arrestare o avviare i processi durante un'implementazione a causa della configurazione della implementazione del servizio. Aggiorna il valore MinimumHealthyPercent o MaximumPercent e prova di nuovo..

Le implementazioni in sequenza dispongono di 2 metodi che forniscono un sistema per identificare rapidamente quando un'implementazione di servizi ha avuto esito negativo:

I metodi possono essere utilizzati separatamente o insieme. Quando si utilizzano entrambi i metodi, l'implementazione viene impostata come non riuscita non appena vengono soddisfatti i criteri di errore per entrambi i metodi di errore.

Utilizza le seguenti linee guida per determinare quale metodo usare:

  • Interruttore: utilizza questo metodo quando desideri interrompere un'implementazione quando le attività non possono essere avviate.

  • Allarmi CloudWatch: utilizza questo metodo quando desideri interrompere un'implementazione in base ai parametri dell'applicazione.

Entrambi i metodi supportano il rollback alla revisione del servizio precedente.

Risoluzione dell'immagine del container

Per impostazione predefinita, Amazon ECS risolve i tag di immagine dei container specificati nella definizione dell'attività in digest delle immagini del container. Se si crea un servizio che esegue e gestisce una singola attività, tale attività viene utilizzata per stabilire digest di immagini per i container inclusi nell'operazione. Se viene creato un servizio che esegue e gestisce più attività, la prima attività avviata dal pianificatore di servizi durante l'implementazione viene utilizzata per stabilire i digest delle immagini per i container nelle attività.

Se tre o più tentativi di stabilire i digest delle immagini dei container hanno esito negativo, l'implementazione continua senza la risoluzione dei digest delle immagini. Se l'interruttore automatico di implementazione è abilitato, quest'ultima ha esito negativo e viene sottoposta a rollback.

Dopo aver stabilito i digest delle immagini del container, Amazon ECS utilizza i digest per avviare qualsiasi altra attività desiderata e per eventuali futuri aggiornamenti del servizio. Ciò comporta che tutte le attività di un servizio eseguono sempre immagini di container identiche, con conseguente coerenza delle versioni del software.

È possibile configurare questo comportamento per ogni container nell'attività utilizzando il parametro versionConsistency nella definizione del container. Per ulteriori informazioni, consultare versionConsistency.

Nota
  • Le versioni di Amazon ECS Agent precedenti a 1.31.0 non supportano la risoluzione del digest delle immagini. Le versioni Agent da 1.31.0 a 1.69.0 supportano la risoluzione del digest delle immagini solo per le immagini inviate ai repository Amazon ECR. Le versioni Agent 1.70.0 o successive supportano la risoluzione del digest delle immagini per tutte le immagini.

  • La versione della piattaforma minima di Fargate Linux per la risoluzione del digest delle immagini è 1.3.0. La versione della piattaforma minima di Fargate Windows per la risoluzione del digest delle immagini è 1.0.0.

  • Amazon ECS non acquisisce digest di container sidecar gestiti da Amazon ECS, come l'agente di sicurezza Amazon GuardDuty o il proxy di Service Connect.

  • Per ridurre la potenziale latenza associata alla risoluzione delle immagini dei container nei servizi con più attività, eseguire la versione dell'agente Amazon ECS 1.83.0 o successiva sulle istanze di container EC2. Per evitare una potenziale latenza, specificare i digest delle immagini del container nella definizione dell'attività.

  • Se viene creato un servizio con un numero di attività desiderate pari a zero, Amazon ECS non può stabilire i digest dei container finché non si attiva un'altra implementazione del servizio con un numero di attività desiderate maggiore di zero.

  • Per stabilire digest di immagini aggiornati, è possibile forzare una nuova implementazione. I digest aggiornati verranno utilizzati per avviare nuove attività e non influiranno sulle attività già in esecuzione. Per ulteriori informazioni su come forzare nuove implementazioni, consultare forceNewDeployment nel riferimento alle API di Amazon ECS.

  • Quando si utilizzano provider di capacità EC2, se la capacità di avvio di un'attività non è sufficiente durante l'implementazione iniziale, la coerenza della versione del software potrebbe non funzionare. Per garantire la coerenza delle versioni anche in caso di capacità limitata, impostare esplicitamente versionConsistency: "enabled" nella configurazione del container di definizione delle attività anziché fare affidamento sul comportamento predefinito. Ciò fa sì che Amazon ECS attenda che la capacità diventi disponibile prima di procedere con l'implementazione.