我在Jenkins 2.73.2.1上并使用Kubernetes-jenkins插件1.4来启动动态奴隶。但是,我无法启动并行构建。 Jenkins总是把它建成队列并一次执行一个队列。
我在启动jenkins的过程中尝试过设置这个但是它没有帮助:
-Dhudson.slaves.NodeProvisioner.initialDelay=0
-Dhudson.slaves.NodeProvisioner.MARGIN=50
-Dhudson.slaves.NodeProvisioner.MARGIN0=0.85
在插件配置端,是否还有其他设置需要运行并行pod?
答案 0 :(得分:2)
适用于我们的解决方案是上述JVM参数的组合,以及在kubernetes容器模板部分中选择“仅使用与当前标签匹配的作业”。
我们能够在不同的pod中并行运行所需的作业
答案 1 :(得分:1)
您必须正确配置以下参数,以便按照您的期望并发运行slave:
在Kubernetes Pod Template
下,
1)为Pod模板正确设置Labels
。
Jenkins Job
配置了相同的标签。Restrict where this project can be run
并提供与在“詹金斯配置”的Labels
字段中提供的标签相同的标签。 2)设置Max number of instances
。该参数将告诉詹金斯How many maximum slaves it can launch with the given label
3)设置Time in minutes to retain agent when idle
。此参数将告诉詹金斯Till how much time to retain slave (with the given label) on which no build is running
。
Kubernetes Pod
Creation time
。 Pod Retention
政策是Default
。在Cloud
部分下,
1)设置Container Cap
。此参数将告诉詹金斯How many slaves can be spawned on Kubernetes
。
Kubernetes cluster
上创建的Pod总数的限制。Max number of instances
大于Container Cap
。詹金斯最多只能为标签创建等于Container Cap
的奴隶。Container Cap
等于Sum of (Max number of instances) of all labels
starting Jenkins
时,
-Dhudson.slaves.NodeProvisioner.initialDelay=0 -Dhudson.slaves.NodeProvisioner.MARGIN=50 -Dhudson.slaves.NodeProvisioner.MARGIN0=0.85
Jenkins Kuberenetes Plugin' Github存储库对所有参数都有很好的单行描述