我尝试将Jenkins配置为在ECS上为每个构建生成一个从属容器。为了实现这一点,我使用了一个亚马逊EC2容器服务插件。
我定义了一个带有" ECS“标签的云和ecs Slave模板。在构建单个作业时,一切都运行得很好--从容器在集群上启动。但是,如果我尝试并行构建另一个作业,它会打印"Waiting for next available executor on ecs"并仅在前一个作业完成后才开始运行(它的容器被停止)。
如果一次只能运行一个作业,我不明白这个插件有什么意义--我认为它的创建是为了提供灵活的从节点创建,以适应工作负载。我是不是遗漏了什么?
我有一个ECS集群,它绑定了一个ec2实例,并且使用ECS仪表板上的“计划任务”功能设置了一个每天运行的计划任务。
这个任务运行了一堆容器,每个容器的内存都比较昂贵,而且在所有容器同时运行时,情况就更复杂了。
我目前还没有为ECS集群设置服务,我的理解是,对于我的目标,在某个时间间隔上运行一个set任务,将不会使用服务。
AWS对ECS文档中的服务的定义是:
An Amazon ECS service enables you to run and maintain a specified number of instances of a task definition simultaneous
我有一个python脚本,可以在云9上本地运行,我正在将它迁移到fargate (代码构建)。我遇到了一些常见的问题,比如它找不到python模块等,只是将它们添加到环境中。看起来这些问题已经解决了,但是我从python那里得到了一条非常奇怪的杀毒信息。这是我从日志中得到的错误信息;
ERROR conda.cli.main_run:execute(33): Subprocess for 'conda run ['python', 'server.py']' command failed. (See above for error)
/opt
我正在尝试创建一个ECS任务,并且能够访问和从ECR中提取,但是我得到了一个错误。我怎样才能解决这个问题?
原始错误:
Cannotpullcontainererror: pull image manifest has been retried 1 time(s): failed to resolve ref {accId}.dkr.ecr.us-east-1.amazonaws.com/test-container:latest: {accId}.dkr.ecr.us-east-1.amazonaws.com/test-container:latest: not found
AWSTempl
在创建ECS服务时,我们可以选择守护程序(每个实例一个任务)或副本(指定任务数量) 为了扩展web前端(nginx,uwsgi For python web stack),我最初考虑使用守护进程,因为这是在没有ecs的情况下扩展ec2的方式。 但后来,我读到人们更倾向于扩展任务(我认为这意味着复制),我感到困惑。 奇怪的是,你必须缩放任务和容器(ec2)。单独伸缩任务/容器有什么好处?