詹金斯可扩展亚马逊ECS从零开始
Posted
技术标签:
【中文标题】詹金斯可扩展亚马逊ECS从零开始【英文标题】:jenkins scalable-amazon-ecs scale from zero 【发布时间】:2017-08-16 05:21:59 【问题描述】:在 Jenkins 中有两个类似的插件可用:
两者都链接到同一个Jenkins wiki page
我没有找到该插件的可扩展版本的任何文档,我有以下问题:
是否可以使用此插件将集群中的 ECS 实例从 0(无)添加到 1? 我只想在有工作要做的时候才有活动的 ECS 实例。
我将不胜感激。
【问题讨论】:
【参考方案1】:我找到了一种解决方法,可以将 ECS 实例的数量从零向外扩展。 我使用以下 shell 代码创建了一个新作业:
result=$(aws ecs list-container-instances --cluster $cluster-name | grep -c arn:aws:ecs:$aws-region) || true
if [ "$result" = '0' ]
then aws autoscaling set-desired-capacity --auto-scaling-group-name $asg-name --desired-capacity 1
else
echo "Container already exists"
fi
替换变量 $cluster-name, $aws-region, $asg-name
用实际值
此作业将 ECS 虚拟机的数量增加到 1,如果它是 0。
可以使用 Cloudwatch 警报和自动缩放策略进行缩放。
【讨论】:
我看不出添加作业来进行配置更改如何真正解决任何问题。您可以编辑自动缩放属性,将所需容量设置为“1”。但是,这并没有解决主要问题:如何让 Jenkins 作业在 ECS 容器中运行,但在没有待处理作业时自动扩展到 0 个实例? @DouglasManley 如果您将所需容量编辑为“1”,您最终会遇到 ECS 实例永远存在的情况。我只想在某些作业正在运行时才运行实例以节省成本 那么你是说每个作业都有这个扩展为一个的代码吗?【参考方案2】:尝试卸载这些插件并从分支自动缩放https://github.com/cbamelis/amazon-ecs-plugin手动编译ecs-slave插件
【讨论】:
以上是关于詹金斯可扩展亚马逊ECS从零开始的主要内容,如果未能解决你的问题,请参考以下文章