[英]Running parallel kubernetes jobs in Jenkins pipeline
我正在對 Jenkins進行性能測試。 測試可能包括同一容器的多個實例以生成必要的負載。 我無法對實例數量進行硬編碼,因為它會根據測試的參數而變化。 我嘗試使用以下代碼:
pipeline {
agent any
stages {
stage('Running Jmeter') {
agent {
kubernetes {
label "jmeter_tests_executor"
yaml '''
apiVersion: batch/v1
kind: Job
metadata:
name: jmeter
namespace: jenkins
spec:
parallelism: 2
backoffLimit: 1
ttlSecondsAfterFinished: 100
...
但它不起作用。 它掛在 pod 調度上(如果您直接在沒有 Jenkins 的 kubernetes 集群上應用此清單,則作業可以正常工作)。
如果有人對此有經驗,請分享您的解決方法或想法如何實現此想法。
也許嘗試這樣的事情
stage("RUN LOAD TEST") {
steps {
script {
//params.each creates an array of stages
paramsToTest.each {param ->
load["load test"] = {
stage("Executing run ${param}") {
agent {
kubernetes {
label "jmeter_tests_executor"
yaml '''
apiVersion: batch/v1
kind: Job
metadata:
name: jmeter
namespace: jenkins
spec:
parallelism: 2
backoffLimit: 1
ttlSecondsAfterFinished: 100
...
'''
}
}
steps {
<EXECUTE LOAD TEST COMMAND>
}
}
}
parallel(load) //actually executes the parallel stages
}
}
}
}
這樣做是使用一個數組,然后基於該數組生成階段。 階段中的代理參數應該告訴 Jenkins 創建一個新的 pod,每個執行都並行執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.