我有一个带有两个EC2实例的UAT ECS集群。 我有一项服务(在同一群集内),该服务的Desired Task = 1(因此它可以在两个EC2实例中的任何一个上运行)。 我有一个ELB,而目标组拥有正常的实例。
问题: 无论何时进行部署,都会在另一个EC2实例中停止正在运行的任务并启动新任务。这不会相应地更新目标组。因此,每次部署之后,目标组都会保留先前的运行状况不佳的EC2目标,该任务在部署之前就在其中运行。
这是AWS的预期行为吗?有什么建议可以绕过部署后每次执行的手动操作吗?
答案 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启动新任务或删除现有任务时,负载均衡器目标组都会更新。
如果您在进行服务时未配置负载均衡器,那么很遗憾,事后您将无法更新该部分服务。您所能做的就是创建新服务并删除旧服务。