我在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?
适用于我们的解决方案是上述JVM参数的组合,以及在kubernetes容器模板部分中选择“仅使用与当前标签匹配的作业”。
我们能够在不同的pod中并行运行所需的作业
您必须正确配置以下参数,以便根据您的期望同时运行从属:
在Kubernetes Pod Template
下,
1)正确设置pod模板的Labels
。
Jenkins Job
。Restrict where this project can be run
并提供与Jenkins配置的Labels
字段中提供的相同的标签。2)设置Max number of instances
。这个参数将告诉Jenkins How many maximum slaves it can launch with the given label
3)设置Time in minutes to retain agent when idle
。这个参数将告诉Jenkins 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
。这个参数将告诉Jenkins 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 repo对所有参数都有良好的单行描述