首页 > 解决方案 > 在同一台机器上同时运行 Master 和 Agent 时,Jenkins 如何操作资源?

问题描述

目前,我的 Jenkins 一直在 Docker 容器中以 Master-only 模式运行。master 将处理调度程序和构建。但是,一旦同时运行多个 Angular 项目,服务器就会以 100% 的内存和 CPU 停机。

然后我通过垂直缩放临时解决了这个问题,添加了更多资源。这再次导致了同样的问题,并且在没有项目运行时资源是无用的。

因此,我正在考虑使用主/从模型进行 Jenkins 可扩展性(因为我使用云并希望最大限度地降低成本。)其中还包括使用云配置额外代理的成本限制。

然后,我写了一篇文章“在同一台机器上运行 Jenkins Master/Slave”,这是一个很好的解决方案,但我真的不知道 Slave 将如何改善资源问题?如果我创建容器并将其分配为 Salves,它们将使用相同的主机资源。

请向我澄清这一点谢谢!

标签: jenkins

解决方案


正如您所说 - 在主机上运行更多容器将导致更多资源的使用。唯一的方法是为容器设置资源限制。阅读这篇文章。

您还需要将 jenkins 配置为使用主机中的 docker,而不是在 jenkins master 的容器中运行容器。

对我来说,最好对小型实例使用水平扩展,并在它们运行时为主机/容器付费,而不是垂直扩展。

您还可以阅读这篇关于运行 jenkins 的硬件建议的文章。


推荐阅读