Azure中同一组织能否创建多组Microsoft-hosted agent池分配给不同团队?
Azure DevOps 多团队Agent Pool分配方案
需求可行性:完全可行
你的需求(同一组织内不同团队分配不同Agent Pool)是可以实现的,思路本身没有偏差,但需要先理清Microsoft-hosted Agents的核心特性:
- Microsoft-hosted Agents是微软托管的公共资源池,默认仅「Default pool」包含所有微软托管的虚拟机资源,无法创建新的Microsoft-hosted类型Agent Pool——这就是你点击「Add Pool」只能看到「Self Hosted」和「Azure virtual machine scale set」选项的原因。
具体实现方案
针对不同的使用场景,有两种主流实现路径:
1. 基于自建池的专属分配(推荐需求明确的团队隔离)
- 创建多个「Self Hosted」或「Azure virtual machine scale set」类型的Agent Pool,每个池对应一个目标团队
- 进入每个池的「Security」设置,添加对应团队的安全组,分配**「User」权限**(允许该团队使用此池),同时移除无关团队的权限
- 团队编写CI/CD流水线时,通过指定
pool: { name: "专属池名称" }来使用专属资源
2. 利用Default Pool的队列隔离(适合继续使用Microsoft-hosted Agents的场景)
如果想沿用微软托管的资源,无需新建池,可通过作业队列实现隔离:
- 在Default Pool中创建多个作业队列(Job Queue),每个队列对应一个团队
- 给不同团队分配对应队列的使用权限,限制仅能使用自己的队列提交作业
- 流水线中通过指定队列名称,实现团队层面的作业隔离(底层仍使用微软托管机器,但队列层面保证了资源独占性)
方案对比
- 自建池:优势是完全可控,可定制机器配置、网络环境;缺点是需要自行维护硬件/虚拟机资源
- Default池队列隔离:优势是无需运维,随用随取;缺点是无法实现底层资源的物理隔离,仅能在作业调度层面隔离
内容的提问来源于stack exchange,提问作者Remi
相关产品推荐
相关产品推荐

