我使用的是Helm安装的Jenkins所以安装完毕就有Kubernetes插件,如果不是需要去安装Kubernetes插件

安装Jenkins没啥说的,KubernetesHelm安装很简单

官网写的很清楚了,随便看看安装了行了 https://www.jenkins.io/doc/book/installing/kubernetes/

安装Kubernetes插件(Helm安装可以忽略)

在这里插入图片描述

配置POD Template

Manager Jenkins -> Manager Nodes and Clouds -> Configure Clouds
在这里插入图片描述
在这里插入图片描述

在Configure Cloud页面先配置K8S相关信息,

这里要按照需求去配置,能按的了K8S集群的也不需要什么指导按照信息配置就行.

配置Pod Template

在这里插入图片描述

配置 POD Template容器相关信息,这里以Java做示例

填写POD Template 名称

在这里插入图片描述
我这里填写mave,

配置POD Template Details

在这里插入图片描述
修改以下参数: 名称和maven,命名空间按需填写(我填写的我Jenkins的namespace)
在这里插入图片描述

配置容器列表 这里的Jnlp一般留着,修改下运行命令为jenkins-slave
在这里插入图片描述
添加一个新容器,这个容器是用来编译你程序的容器,所以需要安装编译的环境,比如我这边Java是用maven编译的 我就搞了个Java和Maven的容器
在这里插入图片描述
这里注意 要点分配为终端,Harbor仓库是私有的,大家访问不到按需编译就行,高级里面可以配置CPU 内存等信息,容器这就配置完毕,下面可以根据需要配置环境变量,目录映射等,因为我这边用的maven,仓库没必要每次编译都下载一次,所以我这边把maven参数的目录指定到我这边的PVC中了
在这里插入图片描述
再往下配置下模板的一些信息就行,比如我这边就针对maven配置了下maven的setting从cm中获取,免得以后改还要改容器
在这里插入图片描述
然后可以创建Pipeline使用POD模板了,相对于在Pipeline中使用yaml这么做pipeline比较清爽,后面修改编译容器不至于每个pipeline去修改,这里分享下我的Demo pipeline

def basedir='Wit-Web'
pipeline {
    agent {
        kubernetes {
            label 'maven'
        }
    }
    environment {      
	    DEPLOY_ENV='dev'      
	    PROJECT='witparking'
	    DOCKER_NAME='baseplatform-provider'
	    DOCKER_HUB='harbor.sonli.net'
    }
    stages {
        stage('获取代码') {
            steps {
                echo "BRANCH:${params.BRANCH}"
                git(credentialsId: 'ssh-key', url: 'git@XXXXX:zhoukai/XX-cd.git', branch: 'feature/dev_docker', changelog: true, poll: false)
            }
        }
        stage('打包Jar') {
            steps {
                container ('maven'){
                    sh 'mvn install -Dmaven.test.skip=true'
                }
            }
        }
        stage('打包Docker'){
          steps {
            container ('maven') {
              echo "start build image"
                // build镜像
              dir(basedir) { //切换文件夹 执行如下命令
                sh 'docker build -t $PROJECT/$DOCKER_NAME-$DEPLOY_ENV:$BUILD_NUMBER .'
                // 登录镜像仓库
                sh 'docker login -u admin -p XXXXX $DOCKER_HUB'
                sh 'docker tag $PROJECT/$DOCKER_NAME-$DEPLOY_ENV:$BUILD_NUMBER $DOCKER_HUB/$PROJECT/$DOCKER_NAME-$DEPLOY_ENV:$BUILD_NUMBER'
                // 推送镜像到镜像仓库
                sh 'docker push $DOCKER_HUB/$PROJECT/$DOCKER_NAME-$DEPLOY_ENV:$BUILD_NUMBER'
              }
            }
          }
        }
    }
}
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐