【发布时间】:2019-08-05 22:43:55
【问题描述】:
我有一个关于 Jenkins Kubernetes 插件如何工作的问题。我正在使用 google cloud、jenkins、helm 和 kubernetes 来设置我的环境。我使用这些说明在 kubernetes 上设置 jenkins:
https://cloud.google.com/solutions/jenkins-on-kubernetes-engine-tutorial
在本教程中通过 helm 文件,slave 消耗 500mCPU 和 256Mi 内存,上限为 1 CPU 和 512MI。然后我使用 Kubernetes jenkins 插件,它按照我想象的方式工作。它基本上使用我的 kubernetes 池或节点中的可用资源来创建代理以在 jenkins 上运行我的作业。
我的问题如下,从教程中我的可用池是 2 个节点,每个节点有 2 个 CPU,每个节点 7.5GB。 jenkins 使用其中一些资源来运行服务器等,这意味着我没有所有可用的资源。在我的 Jenkins 服务器中,我将“并发限制”字段更改为 20,我运行了 20 个作业,期望同时创建 20 个执行程序并用于我的作业,但只创建和使用了 8 个。其他人处于离线状态并被暂停。我猜只创建了 8 个,因为我的集群没有足够的资源来创建更多的执行程序?当一些工作完成并且执行者被终止时,执行者就能够运行。所以现在我的问题是,有没有办法添加更多资源(pod、节点或任何可能的东西),以便我达到我的并发限制,如果碰巧我正在运行 20 个作业,那么我的并发限制已达到,我的任何工作都无需等待?我想这样做,因为我的一些执行程序可能不需要大量 CPU 能力(可能像 100mCPU)但可能还有其他可能需要 1CPU现在有了集群配置,我将能够一次运行 MAYBE 1 个作业,这需要很长时间才能执行所有 20 个作业。如果我能够通过创建更多节点或 Pod 来调整集群大小然后删除它们,那么这将使扩展更容易,同时仍然是动态的。有人对如何实现这一目标有任何建议吗?谢谢
【问题讨论】:
标签: jenkins kubernetes jenkins-plugins jnlp