我想知道是否有一种方法可以确定任务将在集群中的哪个EC2实例上运行?
我在Amazon ECS中有一个EC2实例集群,我在该集群上运行多个服务。
当我使用新任务更新服务时,有时该任务在没有运行任务的EC2实例上运行,但是有时它在已运行任务的EC2实例上运行。我想使在每个EC2实例上运行的任务保持一致,因为我需要知道IP地址以将请求映射到适当的EC2实例。
有没有办法解决这个问题?
答案 0 :(得分:0)
ECS不会将您的任务分配给已知主机,它将始终从池中选择一个。如果需要访问任务,则需要将DNS条目绑定到该任务,然后可以通过这种方式访问服务。
答案 1 :(得分:0)
一个相当“幼稚”的答案,因为它不能完全解决ECS群集的整个动态DNS主题,但是可以为您提供当前容器运行的EC2实例ID:
aws ecs describe-container-instances --container-instances YOUR_CONTAINER_ID --cluster YOUR_CLUSTER_NAME --query 'containerInstances[*].ec2InstanceId'
您可以使用以下命令获取集群中容器的列表
aws ecs list-container-instances --cluster YOUR_CLUSTER_NAME