首页 > 解决方案 > Jenkins slave 作为 kubernetes pod

问题描述

我已经在 GCP 中创建了 kubernetes 集群,最重要的是,我使用以下 url https://cloud.google.com/solutions/jenkins-on-kubernetes-engine-tutorial在 kubernetes 中配置了 jenkins

我能够使用普通命令运行 jenkins build 并且它正在创建一个 pod 并且构建正在成功。当我尝试更改 maven build 或 golang build 的图像时,我无法完成它。当我尝试更改它时,吊舱会继续终止和重新创建。

詹金斯 kubernetes 配置

詹金斯吊舱模板

詹金斯构建

标签: jenkinskubernetesgoogle-kubernetes-enginejenkins-kubernetes

解决方案


我们可以在 Jenkins 流水线脚本中添加 pod 模板来拉取我们的自定义镜像并作为从属 pod 运行。使用以下格式:

pipeline {
  agent {
    kubernetes {
      defaultContainer 'jnlp'
      yaml """
apiVersion: v1
kind: Pod
metadata:
  labels:
    some-label: some-label-value
spec:
  containers:
  - name: maven
    image: maven:alpine
    command:
    - cat
    tty: true
  - name: busybox
    image: busybox
    command:
    - cat
    tty: true
"""
    }
  }
  stages {
    stage('Run maven') {
      steps {
        container('maven') {
          sh 'mvn -version'
        }
        container('busybox') {
          sh '/bin/busybox'
        }
      }
    }
  }
}


推荐阅读