在同一台机器上同时运行 Master 和 Agent 时,Jenkins 如何操作资源?
Posted
技术标签:
【中文标题】在同一台机器上同时运行 Master 和 Agent 时,Jenkins 如何操作资源?【英文标题】:How Jenkins manipulate resources when running both Master and Agent within same machine? 【发布时间】:2020-08-07 04:10:40 【问题描述】:目前我的 Jenkins 一直在 Docker 容器中以 Master-only 模式运行。 master 将处理调度程序和构建。但是,一旦同时运行多个 Angular 项目,服务器就会因 100% 的内存和 CPU 而停机。
然后我通过垂直缩放临时解决了这个问题,添加了更多资源。这再次导致了同样的问题,并且在没有项目运行时资源是无用的。
因此,我正在考虑使用主/从模型进行 Jenkins 可扩展性(因为我使用云并希望最大限度地降低成本。)其中还包括使用云配置额外代理的成本限制。
然后,我写了一篇文章“在同一台机器上运行 Jenkins Master/Slave”,这是一个很好的解决方案,但我真的不知道 Slave 将如何改善资源问题?如果我创建容器并将其分配为 Salves,它们将使用相同的主机资源。
请向我澄清这一点 谢谢!
【问题讨论】:
【参考方案1】:正如您所说 - 在主机上运行更多容器将导致更多资源的使用。唯一的方法是为容器设置资源限制。阅读this 文章。
您还需要将 jenkins 配置为从主机使用 docker,而不是在 jenkins master 的容器中运行容器。
对我来说,最好对小型实例使用水平扩展,并在它们运行时为主机/容器付费,而不是垂直扩展。
您还可以阅读 this 文章,了解有关运行 jenkins 的硬件建议。
【讨论】:
以上是关于在同一台机器上同时运行 Master 和 Agent 时,Jenkins 如何操作资源?的主要内容,如果未能解决你的问题,请参考以下文章
如何在同一个 Windows XP 机器上同时运行 python 2.6 和 3.0?
如何在同一台机器上运行 2 个(或更多)Wildfly 实例?