ELB目标组-ECS启动任务时不会自动添加目标

时间:2018-12-14 12:52:07

标签: amazon-web-services amazon-ec2 devops amazon-elb amazon-ecs

我有一个带有两个EC2实例的UAT ECS集群。 我有一项服务(在同一群集内),该服务的Desired Task = 1(因此它可以在两个EC2实例中的任何一个上运行)。 我有一个ELB,而目标组拥有正常的实例。

问题: 无论何时进行部署,都会在另一个EC2实例中停止正在运行的任务并启动新任务。这不会相应地更新目标组。因此,每次部署之后,目标组都会保留先前的运行状况不佳的EC2目标,该任务在部署之前就在其中运行。

这是AWS的预期行为吗?有什么建议可以绕过部署后每次执行的手动操作吗?

1 个答案:

答案 0 :(得分:0)

这绝对不是预期的行为。您是否在ECS服务上设置了负载均衡?

例如,如果我使用CLI来描述服务:

$ aws ecs describe-services --services <serviceName> --cluster <clusterName>
{
    "services": [
        // a bunch of stuff
        "loadBalancers": [
            {
                "containerName": <container name>,
                "targetGroupArn": <ELB Target Group ARN>
                "containerPort": <container port number>
            }
        ]
        // more stuff here
    ]
}

有了此设置,每次ECS启动新任务或删除现有任务时,负载均衡器目标组都会更新。

如果您在进行服务时未配置负载均衡器,那么很遗憾,事后您将无法更新该部分服务。您所能做的就是创建新服务并删除旧服务。