【问题标题】:Multiple containers in one ECS cluster一个 ECS 集群中的多个容器
【发布时间】:2020-08-24 15:49:49
【问题描述】:

我有一个在 ECS 上运行的集群。目前,我有一个任务定义和一个在集群中运行的 docker 容器。我想将第二个容器部署到将完全独立运行的同一个集群。实现这一目标的最佳方法是什么?

我已尝试设置第二个任务定义,指向 ECR 中的第二个图像,然后为该定义设置第二个服务。我不确定这是否是最好的方法。

网上有没有很好的例子说明如何实现在一个ECS集群中运行两个独立的容器?

【问题讨论】:

  • 您像以前一样运行第二个服务。那有什么问题吗?有什么错误吗?
  • 啊,所以也许我在正确的轨道上。我没有看到任何错误,一切似乎都在 ECS 中运行。我现在唯一关心的是服务发现命名空间。当我创建第二个服务时,我指定了一个不同的服务发现端点,因为我不确定是否可以使用与第一个服务相同的端点。理想情况下,我想对两个容器使用相同的端点。例如,我希望能够在“example.com/first_image”处卷曲第一个图像,在“example.com/second_image”处卷曲第二个图像。使用同一个命名空间会不会有冲突?
  • 也对同样的问题感兴趣。 @northy 你回答你的问题了吗?

标签: amazon-web-services docker amazon-ec2 amazon-ecs amazon-ecr


【解决方案1】:

“我已尝试设置第二个任务定义,指向 ECR 中的第二个图像,然后为该定义设置第二个服务。我不确定这是否是最佳方法。”

是的,这是正确的做法,所以我认为您不需要任何示例。

每个服务都使用一个任务定义来引用 ECR(或其他 repo,如 Docker Hub,但通常是 ECR)中的容器。

每个服务可以运行任意数量的任务(任务定义的实例)。

【讨论】:

  • 我应该为我要运行的第二个映像设置另一个 elb 和安全组吗?当我尝试将相同的配置应用于第二个实例时,我的负载均衡器似乎将所有流量路由到第一个实例,因此尝试从我的第二个服务器访问端点导致 404 请求到第一个。我该怎么办?
  • 不,您可以使用相同的应用程序负载均衡器。您也可以将服务放在同一个 SG 中,也可以将它们分开,让它们都接受来自 ALB 的流量。然后,您需要在 ALB 上配置多个侦听器,并根据客户端请求的 url/header/path 将流量路由到相应的服务。听起来你根本没有配置监听器,它默认只使用第一个服务。
  • @northy 我有类似情况的最终解决方案--
  • @Judi 如果你像我写的那样设置它,你应该很高兴。
猜你喜欢
  • 2018-12-12
  • 1970-01-01
  • 2019-06-08
  • 1970-01-01
  • 2022-01-11
  • 2019-07-01
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多