在同一台机器上同时运行 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 实例?

有人在同一台机器上同时使用Tortoise Git和Subversion吗?

RPC over TCP 与同一台机器上的多个客户端

在同一台机器上运行 Matlab MCR 和 MATLAB