我有三个 EC2 实例,带有一个经典的负载均衡器。理想情况下,我应该在两个实例中运行两个任务。因此,在创建服务时,我将所需的任务数设为 2。
当我尝试运行新版本的任务定义时出现了我的问题。我更新服务以运行新的任务定义。所以理论上它应该运行两个更新的任务来替换旧的,因为我运行了三个 ec2。
实际上发生的只是一个更新的任务与旧任务一起运行。因此,即使所需的计数设置为 2,总共运行 3 个任务,正如您在给定图像中看到的那样。
有谁知道这个的解决方案?
我有三个 EC2 实例,带有一个经典的负载均衡器。理想情况下,我应该在两个实例中运行两个任务。因此,在创建服务时,我将所需的任务数设为 2。
当我尝试运行新版本的任务定义时出现了我的问题。我更新服务以运行新的任务定义。所以理论上它应该运行两个更新的任务来替换旧的,因为我运行了三个 ec2。
实际上发生的只是一个更新的任务与旧任务一起运行。因此,即使所需的计数设置为 2,总共运行 3 个任务,正如您在给定图像中看到的那样。
有谁知道这个的解决方案?
使用经典负载均衡器时,您只能映射 ec2 实例上的静态端口。
您的部署设置为: min-health: 100% max-healthy: 200%
该服务的新版本将需要另外两台主机,并提供您请求的免费 tcp 端口。由于集群中只有 3 台服务器,因此无法满足此条件。您可以向集群添加更多服务器,也可以使用将与 docker 动态端口映射集成的应用程序负载均衡器 (ALB)。
关于安全组的更新:要管理安全组,您可以用另一个安全组标记一个安全组。例如,用“app-gateway-alb”标记您的 ALB,它允许来自网络外部的特定端口,然后在容器上有一个安全组,允许来自“app-gateway-alb”的任何 TCP,这是通过放置安全性来实现的组 ID 在您通常放置 CIDR 规则的文本框中。