首页 > 解决方案 > kubernetes 上的并行 jenkins 代理和 kubernetes 插件

问题描述

我正在使用 Jenkins 版本 2.190.2 和 Kubernetes 插件 1.19.0 我有这个 jenkins 作为 AWS 的 kubernetes 集群的主人。这个 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/t-ZiSbftKZrK

我已经阅读了很多这个问题,并且我已经配置了 jenkins 从这个 JAVA_OPTS 开始,但问题没有解决。

-Dhudson.slaves.NodeProvisioner.initialDelay=0 
-Dhudson.slaves.NodeProvisioner.MARGIN=50 
-Dhudson.slaves.NodeProvisioner.MARGIN0=0.85

Kubernetes 插件配置有:

我缺少什么配置或我在做什么错误?

标签: jenkinskubernetesjenkins-pipelinejenkins-plugins

解决方案


由于另一个问题,我终于解决了我的问题。我们在创建普通 pod 时开始出错,因为我们在 aws 的 kubernetes 节点没有足够的可用 IP。由于这个错误,我们扩展了节点,现在 jenkins 管道可以与不同的 pod 和容器并行运行。


推荐阅读