亚马逊的EC2 Container Service允许您运行任何数量的容器,它将选择一个EC2实例来自动运行容器。哪些是很棒的功能。但是,我们非常关注自动扩展性。
情景:
问题1:ECS会再运行一个容器自动吗?
问题2:当CPU(或RAM)负载变低时,ECS是否会自动关闭其中一个容器?</ p>
答案 0 :(得分:2)
不,您不能通过基本ECS实现全自动扩展。您可以做的是为负载变高时创建一个警报,并使警报触发更新以增加集群大小。
2017年11月29日更新
AWS Fargate是适用于Amazon ECS和EKS *的技术 运行容器而无需管理服务器或集群。使用AWS Fargate,您不再需要进行配置,配置和扩展 用于运行容器的虚拟机集群。
这允许扩展容器,而无需担心使用ECS服务级别扩展配置的基础设施。
答案 1 :(得分:1)
理想情况下,您应该在ec2和ecscontainer级别进行缩放。
如果您使用的是ASG,可以在ASG上配置基于cloudwatch闹钟的ec2缩放。
对于容器缩放,您必须编写lambda函数或具有某种应用程序,可以在cloudwatch警报上触发,以便进行缩放。
2016年5月18日,ECS发布了自动缩放功能。您不需要Lambda在服务级别构建扩展功能。
请参阅下面的发布和功能文档
http://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html
答案 2 :(得分:0)
所以它没有明确说明,纳撒尼尔肯定是正确的,但this blog from April 9th今年似乎暗示至少你可以做你想要的事情
长期运行的应用程序以前,Amazon ECS包含两种方式 在集群上安排Docker容器。你可以运行一次任务 诸如执行工作然后停止的批处理作业之类的进程。您 也可以调用Amazon ECS API来检索状态 有关群集的信息,然后使用它为第三方供电 或自定义编写的调度程序。
随着今天的发布,您还可以使用新的Amazon ECS服务 调度程序来管理长时间运行的应用程序和服务。该 服务计划程序可帮助您维护应用程序可用性 允许您向上或向下扩展容器以满足您的需求 应用程序的容量要求。以下是它为您做的事情:
负载平衡 - 服务调度程序允许您分发 使用Elastic Load Balancing跨容器的流量。亚马逊 ECS将自动注册和注销您的容器 相关的负载均衡器。健康管理 - 服务 scheduler还会自动恢复成为的容器 不健康(ELB健康检查失败)或停止运行以确保这一点 您可以运行所需数量的健康容器 你的申请。放大和缩小 - 您可以扩展您的 通过更改所需容器的数量来上下应用程序 要运行的服务。更新管理 - 您可以更新您的 应用程序通过更改其定义或使用新图像。该 scheduler将使用new自动启动新容器 定义和停止运行先前版本的容器。它会 如果使用ELB,则等待ELB连接耗尽。你也可以使用 这些新设施实现了基本的服务发现模型。您 可以列出群集中运行的服务,然后使用 ELB作为服务端点。
答案 3 :(得分:0)
截至2017年12月,亚马逊宣布推出名为Fargate的新服务。引用链接:
AWS Fargate可以轻松扩展您的应用程序。您不再需要担心为容器应用程序配置足够的计算资源。在定义应用程序要求(例如,CPU,内存等)之后,AWS Fargate将以高度可用的方式管理运行容器所需的所有扩展和基础结构。您不再需要决定何时扩展群集或将其打包以获得最佳利用率。
我认为粗体文字意味着Fargate将为我扩展上下资源。不过100%肯定。