在 aws ecs 上滚动更新期间强制在容器启动之前停止

问题描述 投票:0回答:2

有没有办法从 ecs 控制台移植以下 docker compose 配置?

deploy:
  update_config:
    parallelism: 2
    delay: 10s
    order: stop-first

我有兴趣强制执行订单选项,在滚动更新期间创建新容器之前,必须停止 ecs 任务中的容器之一

docker amazon-ecs rolling-updates
2个回答
4
投票

如果必须先停止任务中的一个容器,然后才能创建另一个实例,则在 ECS 中,必须先停止整个任务,然后再创建该任务的另一个实例。

在 ECS 中,您可以通过 ECS 服务上的 DeploymentConfiguration 选项进行控制。您需要设置

maximumPercent
minimumHealthyPercent
值,这样您在任何时候都不会获得超过预期数量的任务。

例如,如果您希望最多运行

2
个任务实例,则可以在服务的自动缩放配置中将所需任务计数设置为
2
,并将
maximumPercent
设置为
100
 minimumHealthyPercent
50


0
投票

您可能正在寻找

The daemon scheduling strategy
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service_definition_parameters.html#sd-schedulingstrategy

否则要使用 Fargate 任务来模拟这一点:

desiredCount: 1,
// @default: 0 if daemon, otherwise 50
minHealthyPercent: 0,
// @default: 100 if daemon, otherwise 200
maxHealthyPercent: 100,
© www.soinside.com 2019 - 2024. All rights reserved.