簡體   English   中英

在 Jenkins 管道中運行並行 kubernetes 作業

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM