要部署docker-compose,请使用AWS ECS。
一切正常,除了自动搜索。
创建ECS集群时,
我可以决定实例数。
因此我将其定义为1。
下一步,在我的集群上创建服务时,
还可以决定任务数。
我知道任务正在实例上运行,因此我将其定义为1。
并指定这样的自动调整策略。
您知道,如果cpu百分比在5分钟内达到50,它将自动添加任务。
所以完成配置,我运行基准测试。
在服务描述中,所需任务增加到2。
但是实例没有自动添加。
在事件日志中,
也许我在集群中将实例数定义为1,所以它无法启动新任务。
为什么自动搜寻无法在群集上自动添加新实例?
我的配置有问题吗?
谢谢。
答案 0 :(得分:1)
您的ecs集群未自动扩展实例数量。它可以自动扩展在现有群集中运行的任务数量。一个ec2实例可以运行多个任务。要自动扩展实例计数,您将需要使用cloudwatch警报: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch_alarm_autoscaling.html
由于ECS尝试使用“最匹配的容器实例”(在这种情况下是以9e5e结尾的实例)时的端口冲突,您会收到此问题。
尝试在该实例上启动任务时,它会注意到该实例“已在使用您的任务所需的端口”
为了解决此问题, 您需要为ECS群集使用动态端口。
Amazon在此处提供了有关如何执行此操作的教程: https://aws.amazon.com/premiumsupport/knowledge-center/dynamic-port-mapping-ecs/
基本上, 您将需要在任务定义中修改具有您要运行和扩展的Docker容器的端口映射。
主机端口的端口映射应该为0,然后应用程序用于容器端口的端口号。
零值将使运行的ECS集群中的每个docker实例对其主机端口使用不同的数字,从而消除了您遇到的端口冲突。