写在前面:
在生产环境中,我们通常会使用Jenkins流水线部署k8s群集,这里主要介绍使用Jenkins的pipline可选择分支实现k8s群集的发布、更新、回滚功能
部署环境
角色
IP地址
部署软件
硬件
系统
master
192.168.154.134
docker 、k8s
2C2G
CentOS 7.6
node02
192.168.154.132
docker 、k8s
2C2G
CentOS 7.6
node01
192.168.154.129
docker、docker-compose、harbor 、k8s
2C2G
CentOS 7.6
gitlab
192.168.154.131
gitlab 、git、mysql
2C3G
CentOS 7.6
jenkins
192.168.154.128
jdk、git、jenkins、docker、maven
2C2G
CentOS 7.6
实验目的
1.分支可选
有2个分支branch=(master,develop),可以任意选择分支构建
2个分支的区别
为了做实验,修改背景图片来做区别
master 分支:背景图片上面版本号:v1.0
develop 分支:背景图片上面版本号:v2.0
3.构建方法可选
每个分支都有2个构建方法action=(release,rollback),可以任意选择方法
4.两个方法的区别
方法release:正常版本发布
方法rollback:出现问题时,紧急回滚上一个版本
实现选择各分支和各方法,随意组合,构建版本
部署过程
环境服务部署:
一、编写流水线脚本
1.编写Jenkinsfile
pipeline {
agent any
// 拉取代码
stages {
stage('GetCode') {
when { environment name: 'action', value: 'release' }
steps {
println("your choices are Branch:${branch} action:${action} version:1.0 ! ")
sleep 3
}
}
// 代码编译
stage('Maven Build') {
when { environment name: 'action', value: 'release' }
steps {
sh '''
export JAVA_HOME=/usr/local/java
/usr/local/apache-maven-3.6.3/bin/mvn clean install -Ptest
'''
}
}
// 项目打包成镜像并推送到仓库
stage('Build and Push Image') {
when { environment name: 'action', value: 'release' }
steps {
sh '''
REPOSITORY=192.168.154.129/maven-test01/maven-quartz:v1 #develop是v2
docker build -t $REPOSITORY .
docker login 192.168.154.129 -u admin -p Harbor12345