Implantação de serviços do Amazon ECS por meio da substituição de tarefas
Ao criar um serviço que usa o tipo de implantação atualização cumulativa (ECS
), o agendador de serviços do Amazon ECS substitui as tarefas que estão em execução por novas tarefas. O número de tarefas que o Amazon ECS adiciona ou remove do serviço durante uma atualização contínua é controlado pela configuração de implantação do serviço.
O Amazon ECS usa os seguintes parâmetros para determinar o número de tarefas:
-
O
minimumHealthyPercent
representa o limite inferior do número de tarefas que devem estar sendo executadas para um serviço durante uma implantação ou quando uma instância de contêiner está sendo drenada, como uma porcentagem do número desejado de tarefas para o serviço. Esse valor é arredondado para cima. Por exemplo, se a porcentagem mínima de integridade é50
e a contagem de tarefas desejadas é quatro, o programador pode interromper duas tarefas existentes antes de iniciar duas novas tarefas. Da mesma forma, se a porcentagem mínima de integridade é 75% e a contagem de tarefas desejada é dois, o programador não pode parar quaisquer tarefas porque o valor resultante também é dois.Se as tarefas se tornarem não íntegras, o agendador de serviço do Amazon ECS primeiro iniciará as tarefas substitutas e manterá as tarefas com
minimumHealthyPercent
até que as tarefas substitutas se tornem íntegras. À medida que as tarefas substitutas forem iniciadas e se tornarem íntegras, as tarefas não íntegras serão gradualmente interrompidas. -
O
maximumPercent
representa o limite superior do número de tarefas que devem estar sendo executadas para um serviço durante uma implantação ou quando uma instância de contêiner está sendo drenada, como uma porcentagem do número desejado de tarefas para o serviço. Esse valor é arredondado para baixo. Por exemplo, se a porcentagem máxima de integridade for200
e a contagem de tarefas desejadas for quatro, o programador poderá iniciar quatro novas tarefas antes de interromper quatro tarefas existentes. Da mesma forma, se a porcentagem máxima de integridade é125
e a contagem de tarefas desejada é três, o programador não pode iniciar quaisquer tarefas porque o valor resultante também é três.
Importante
Ao definir um percentual mínimo ou um percentual máximo de integridade, você deve garantir que o programador possa interromper ou iniciar pelo menos uma tarefa quando uma implantação for iniciada. Se seu serviço tiver uma implantação travada devido a uma configuração de implantação inválida, será enviada uma mensagem de evento de serviço. Para obter mais informações, consulte O serviço (service-name) não conseguiu interromper ou iniciar tarefas durante uma implantação devido à configuração de implantação do serviço. Atualize o valor minimumHealthyPercent ou maximumPercent e tente novamente..
As implantações contínuas têm dois métodos que fornecem uma maneira de identificar rapidamente quando uma implantação de serviço falhou:
Os métodos podem ser usados separadamente ou em conjunto. Quando ambos os métodos são usados, a implantação é definida como falha assim que os critérios de falha de qualquer um dos métodos de falha são satisfeitos.
Siga as diretrizes a seguir para ajudar a determinar qual método será usado:
-
Disjuntor: use este método se quiser interromper uma implantação quando as tarefas não puderem ser iniciadas.
-
Alarmes do CloudWatch: use este método quando quiser interromper uma implantação com base nas métricas da aplicação.
Ambos os métodos permitem a reversão para a revisão de serviço anterior.
Resolução da imagem do contêiner
Por padrão, o Amazon ECS resolve tags de imagem de contêiner especificadas na definição da tarefa para resumos de imagens de contêiner. Se você criar um serviço que executa e mantém uma única tarefa, essa tarefa será usada para estabelecer resumos de imagem para as imagens no contêiner. Se você criar um serviço que executa e mantém várias tarefas, a primeira tarefa iniciada pelo agendador de serviços durante a implantação será usada para estabelecer resumos de imagens para os contêineres nas tarefas.
Se três ou mais tentativas de estabelecer os resumos de imagens no contêiner falharem, a implantação continuará sem a resolução do resumo da imagem. Se o disjuntor de implantação estiver habilitado, a implantação também falhará e será revertida.
Depois que os resumos de imagens no contêiner forem estabelecidos, o Amazon ECS usará os resumos para iniciar qualquer outra tarefa desejada e para qualquer atualização futura do serviço. Isso faz com que todas as tarefas em um serviço sempre executem imagens de contêiner idênticas, o que resultará na consistência de versões do seu software.
É possível configurar esse comportamento para cada contêiner em sua tarefa usando o parâmetro versionConsistency
na definição do contêiner. Para obter mais informações, consulte versionConsistency.
nota
-
Versões do Amazon ECS Agent anteriores à
1.31.0
não oferecem suporte à resolução de resumos de imagens. As versões do agente1.31.0
a1.69.0
oferecem suporte à resolução de resumos de imagens somente para imagens enviadas aos repositórios do Amazon ECR. As versões do agente1.70.0
ou superiores oferecem suporte à resolução de resumos de imagens para todas as imagens. -
A versão mínima da plataforma Linux para o Fargate para resolução de resumos de imagens é
1.3.0
. A versão mínima da plataforma Windows para o Fargate para resolução de resumos de imagens é1.0.0
. -
O Amazon ECS não captura resumos de contêineres auxiliares gerenciados pelo Amazon ECS, como o agente de segurança do Amazon GuardDuty ou o proxy do Service Connect.
-
Para reduzir a latência potencial associada à resolução de imagens de contêineres em serviços com várias tarefas, execute o agente do Amazon ECS versão
1.83.0
ou superior em instâncias de contêiner do EC2. Para evitar latência potencial, especifique os resumos de imagens do contêiner na definição da tarefa. -
Se você criar um serviço com uma contagem de tarefas desejada igual a zero, o Amazon ECS não poderá estabelecer resumos do contêiner até que você acione outra implantação do serviço com uma contagem de tarefas desejada maior que zero.
-
Para estabelecer resumos de imagens atualizados, é possível forçar uma nova implantação. Os resumos atualizados serão usados para iniciar novas tarefas e não afetará as tarefas já em execução. Para obter mais informações sobre forçar novas implantações, consulte forceNewDeployment na referência da API do Amazon ECS.