我想知道是否有办法确定任务将在集群中的哪个 EC2 实例上运行?
我在 Amazon ECS 中有一个 EC2 实例集群,我在该集群上运行多个服务。
当我使用新任务更新服务时,有时任务在 EC2 实例上运行而没有任务运行,但有时它在 EC2 实例上运行,任务已在其上运行。我想让每个 EC2 实例上运行的任务保持一致,因为我需要知道 IP 地址才能将请求映射到适当的 EC2 实例。
有没有办法解决这个问题?
我想知道是否有办法确定任务将在集群中的哪个 EC2 实例上运行?
我在 Amazon ECS 中有一个 EC2 实例集群,我在该集群上运行多个服务。
当我使用新任务更新服务时,有时任务在 EC2 实例上运行而没有任务运行,但有时它在 EC2 实例上运行,任务已在其上运行。我想让每个 EC2 实例上运行的任务保持一致,因为我需要知道 IP 地址才能将请求映射到适当的 EC2 实例。
有没有办法解决这个问题?
ECS 不会将您的任务分配给已知主机,它总是会从池中选择一个。如果您需要访问需要将 DNS 条目绑定到它的任务,则可以通过这种方式访问该服务。
一个相当“幼稚”的答案,因为它不能完全解决 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