Jenkins ECS插件创建inbound-agent节点如何配置执行器数量
问题场景
- 技术栈:amazon-ecs插件 +
jenkins/inbound-agent镜像,ECS/Fargate环境动态创建代理节点,降低构建主节点压力 - 需求:同流水线触发的低资源占用、长耗时子任务直接运行在父任务拉起的同一代理节点上,既不占用主节点资源,也省去新ECS任务冷启动的时间开销
- 故障:子任务调度到临时代理节点时,持续卡在
Waiting for next available executor on XXXX状态 - 排查结果:amazon-ecs插件默认给动态代理分配1个执行器,未找到调整执行器数量的配置入口
- 环境:Jenkins 核心版本 2.332.1
解决方法
全局模板配置修改
找不到配置入口通常是因为执行器配置项默认折叠在高级选项中,配置步骤:
- 进入Jenkins管理页 → 节点管理 → 配置云,找到已添加的Amazon ECS云配置
- 展开用于拉起Fargate代理的对应Agent模板
- 拉到模板配置最底部,点击**Advanced...(高级)**展开隐藏配置
- 找到
Number of executors配置项,填入需要的执行器数(比如2)后保存 - 后续所有用该模板拉起的动态代理,启动后默认带对应数量的执行器,无需额外调整
单流水线自定义配置
如果不需要全局修改,仅要求特定流水线的动态代理使用多执行器,可以直接在流水线的ecs agent配置中传参覆盖,示例:
pipeline { agent { ecs { // 按实际环境补全原有ECS配置:集群、镜像、CPU、内存、子网、安全组等 cluster 'fargate-cicd-cluster' image 'jenkins/inbound-agent:jdk11' memory 2048 cpu 1024 launchType 'FARGATE' // 核心配置:指定当前代理的执行器数量 numExecutors 2 // 给当前代理打构建唯一标签,避免子任务调度到其他节点 label "dyn-agent-${BUILD_NUMBER}" } } stages { stage('主构建') { steps { script { // 主构建逻辑 echo 'running main build step' // 触发子任务,指定调度到当前代理节点 build job: 'long-running-light-task', parameters: [string(name: 'NODE_LABEL', value: "dyn-agent-${BUILD_NUMBER}")], wait: false } } } } }
注意事项
- 该配置兼容Jenkins 2.332.1版本,只要amazon-ecs插件版本不低于1.50即可正常使用,找不到配置项先升级插件到稳定版
- 针对低资源占用的长耗时任务,配置2个执行器不会产生明显资源争抢,完全满足主任务+子任务同节点运行的需求
- 配置后如果仍卡调度,检查子任务绑定的节点标签是否和当前动态代理标签完全匹配,避免标签通用导致调度到其他默认单执行器节点
内容的提问来源于stack exchange,提问作者grow_plumbuma
相关产品推荐
相关产品推荐

