首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以确保我的三个docker实例在不同的ECS EC2上运行吗?

可以确保我的三个docker实例在不同的ECS EC2上运行吗?
EN

Stack Overflow用户
提问于 2020-11-15 13:09:13
回答 3查看 81关注 0票数 0

例如,我需要将三个docker实例部署到具有三个EC2的ECS。是否可以将这三个docker实例部署到不同的EC2计算机上?

我在考虑部署一个kafka集群,broker1,broker2,broker3和zookeeper1,zookeeper2,zookeeper3分别部署到三个EC2。

EN

回答 3

Stack Overflow用户

发布于 2020-11-16 09:33:11

如果你有BrokerServiceZooKeeperService,那么任务将通过spread放置策略在可用区之间进行平衡,所以这应该会发生,但如果它们的容量不够,你可能得不到理想的放置。

Fargate计算

有几种方法可以强制执行。我能想到的最简单的情况是,如果Fargate是一个选项。这将确保最高级别的高可用性,但随后您将被迫使用Fargate,而不是ec2,这可能会违反您的要求,例如,您可能需要从Fargate获得的块存储。它可以花费或节省您的资金,这取决于它是否会节省您部署新ec2实例的需要,但您可能已经保留了想要使用的实例,因此它取决于您的需求。

每个AZ的服务,否则您可以为每个AZ创建一个服务。每个服务都有一个使用Cluster query languagePlacementConstraints来定义它应该驻留在哪个区域中:

代码语言:javascript
复制
"PlacementConstraints": [{
          "Type": "memberOf",
          "Expression": "attribute:ecs.availability-zone != us-east-1a"
        }

您将为每个服务使用us-east-1{a-c}

在每个AZ中创建具有不同实例的不同集群也可以实现这一点。

票数 1
EN

Stack Overflow用户

发布于 2020-11-16 12:06:13

调查一下daemon services。ECS提供两种服务类型-副本和守护程序。

PS:守护服务不能与Fargate一起工作。不管怎么说,看起来你并没有在使用Fargate。

票数 1
EN

Stack Overflow用户

发布于 2020-11-17 02:59:39

您可以使用distinctInstance placement constraint将服务的副本任务放置在不同的实例上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64841380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档