jenkins - 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 插件配置有:
- Kubernetes cloud / Concurrency Limit = 50。我已经配置了没有值但问题仍然存在
- Kubernetes 云/Pod 保留 = 从不
- Pod 模板/没有值的并发限制。我已经配置了 10 但问题仍然存在
- Pod 模板/Pod 保留 = 默认
我缺少什么配置或我在做什么错误?
解决方案
由于另一个问题,我终于解决了我的问题。我们在创建普通 pod 时开始出错,因为我们在 aws 的 kubernetes 节点没有足够的可用 IP。由于这个错误,我们扩展了节点,现在 jenkins 管道可以与不同的 pod 和容器并行运行。
推荐阅读
- node.js - 为什么 LoopBack 会缩小 JSON 配置文件的内容?
- elasticsearch - 如何在聚合中获取特定的 _source 字段
- python - .obj 到 python 中带有法线的原始顶点转换器
- python - Python:如何将标记列表添加到数据框的新列
- java - 无法创建 JVM Android Studio
- c# - vs 2017 .net核心类库项目中的引用管理器为空
- bash - 打印字符串中的字符
- asp.net-mvc - 获取操作方法的输入值。Mvc 核心和 AJAX
- regex - 有没有办法用 TextFSM 一次记录多行?
- java - 如何使用意图打开带有chrome的xml文件?