我使用Jenkins版本2.190.2和Kubernetes插件1.19.0,我在AWS的kubernetes集群中使用了这个jenkins。这个jenkins配置了kubernetes插件,并且运行正常。我已经配置了一些正在运行的pod模板和容器。我能够运行指定代理和容器的声明性管道。
我的问题是我无法并行运行作业。当多个作业同时执行时,第一个作业就开始了,pod就会被创建并执行。第二个作业等待到第一个作业结束,即使使用不同的代理。
例子:
管道1
pipeline {
agent { label "bash" }
stages {
stage('init') {
steps {
container('bash') {
echo 'bash'
sleep 300
}
}
}
}
}管道2
pipeline {
agent { label "bash2" }
stages {
stage('init') {
steps {
container('bash2') {
echo 'bash2'
sleep 300
}
}
}
}
}这是org.csanchez.jenkins.plugins.kubernetes日志。我已经上传到wetransfer -> we.tl/
我已经阅读了很多这个问题,并且配置了jenkins,从这个JAVA_OPTS开始,但是问题没有解决。
-Dhudson.slaves.NodeProvisioner.initialDelay=0
-Dhudson.slaves.NodeProvisioner.MARGIN=50
-Dhudson.slaves.NodeProvisioner.MARGIN0=0.85Kubernetes插件配置如下:
我缺少什么配置,或者正在做什么错误?
发布于 2019-11-15 12:56:10
由于另一个问题,我终于解决了我的问题。因为aws的kubernetes节点没有足够的空闲ip,所以我们开始在创建普通吊舱时出现错误。由于这个错误,我们缩放了节点,现在jenkins管道可以与不同的容器、吊舱和容器并行运行。
发布于 2019-11-01 12:13:22
你的吊舱是并行创建的
Oct 31, 2019 3:13:30 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesLauncher launch
Created Pod: default/bash-4wjrk
...
Oct 31, 2019 3:13:30 PM INFO org.csanchez.jenkins.plugins.kubernetes.KubernetesLauncher launch
Created Pod: default/bash2-3rxck但是你的bash2吊舱失败了
Caused by: java.net.UnknownHostException: jenkins-jnlp.default.svc.cluster.local发布于 2019-11-01 12:45:44
您应该使用平行级。您可以在管道语法的Jenkins文档中找到它。
声明性管道中的阶段可以声明
parallel块中的多个嵌套阶段,这些嵌套阶段将并行执行。请注意,一个舞台必须有一个并且只有一个steps、stages或parallel。嵌套阶段不能包含更多的parallel阶段本身,但在其他情况下,它们的行为与任何其他stage相同,包括stages中的顺序阶段列表。任何包含parallel的阶段都不能包含agent或tools,因为如果没有steps,这些阶段就不相关了。 此外,您还可以通过将parallel添加到包含failFast true的stage中,强制在其中一个阶段失败时中止所有parallel阶段。添加failfast的另一个选项是在管道定义中添加一个选项:parallelsAlwaysFailFast()
一个示例管道可能如下所示:
Jenkinsfile
pipeline {
agent none
stages {
stage('Run pod') {
parallel {
stage('bash') {
agent {
label "init"
}
steps {
container('bash') {
echo 'bash'
sleep 300
}
}
}
stage('bash2') {
agent {
label "init"
}
steps {
container('bash') {
echo 'bash'
sleep 300
}
}
}
}
}
}
}https://stackoverflow.com/questions/58646823
复制相似问题