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. A configuração de implantação consiste no seguinte:
-
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 ter 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..
Uma implantação contínua usa o disjuntor de implantação para determinar se as tarefas atingem um estado estável. O disjuntor de implantação pode, opcionalmente, reverter uma implantação em caso de falha.
Resolução da imagem do contêiner
Para garantir que todas as tarefas em um serviço usem a mesma imagem de contêiner, o Amazon ECS resolve nomes de imagens de contêiner e quaisquer tags de imagem 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 o resumo da imagem do contêiner. Se você criar um serviço que executa e mantém várias tarefas, o programador de serviços iniciará uma tarefa primeiro durante a implantação. Essa primeira tarefa é usada para estabelecer o resumo da imagem do contêiner.
Depois que o resumo da imagem do contêiner for estabelecido, o Amazon ECS usará o resumo 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.
Se três ou mais tentativas de estabelecer o resumo da imagem do 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.
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
.
Versões do Amazon ECS Agent anteriores à 1.31.0
não oferecem suporte à resolução de resumos de imagens. As versões do agente 1.31.0
a 1.69.0
oferecem suporte à resolução de resumos de imagens somente para imagens enviadas aos repositórios do Amazon ECR. As versões do agente 1.70.0
ou superiores oferecem suporte à resolução de resumos de imagens para todas as imagens.
nota
-
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 completamente a 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 um resumo do contêiner até que você acione outra implantação do serviço com uma contagem de tarefas desejada maior que zero.
-
Para estabelecer um resumo de imagem atualizado, você pode forçar uma nova implantação. Esse resumo atualizado será usado 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.
Detecção de falhas
Há dois métodos que fornecem uma maneira de identificar rapidamente quando uma implantação falhou e, opcionalmente, reverter a falha para a última implantação em funcionamento.
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.