Bootstrap

使用jenkins流水线完成自动部署服务到K8s

说明

通过本文章,您可以轻松入门cicd过程。本地测试环境为springboot微服务项目。用户提交代码到gitlab,触发jenkins拉取gitllab上的代码,然后完成编译构建成jar包,同步完成sonarsqube代码质量检测。然后在jenkins内部完成生成镜像,并将镜像推送到harbor仓库中,然后通过K8s完成服务的部署。

依赖环境部署

环境准备

使用环境说明

使用的虚拟机环境centos7.9,使用vmware安装

同步主机时区为亚洲,并同步时间
[root@linux-node ~]# echo "ZONE=Asia/Shanghai" >> /etc/sysconfig/clock         
[root@linux-node ~]# rm -f /etc/localtime
#链接到上海时区文件       
[root@linux-node ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
关闭防火墙和selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
设置yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
安装docker

linux安装docker

创建数据目录将数据持久话到该目录下,以便后期好维护

mkdir -p /data

安装maven

linux安装maven

gitlab安装部署

docker安装gitlab

harbor安装部署

docker安装harbor

jenkins安装部署

docker安装jenkins

sonarqube部署

docker安装sonarsqube

k8s部署

部署过程略

创建java工程并测试将代码上传到gitlab仓库
gitlab上创建项目

在这里插入图片描述

创建springboot工程,并将代码提交到hello-test工程下

idea创建springboot项目

编写Jenkinsfile的方式

流水线语法

我们在编写jenkins流水线脚本时可以先将框架写好,然后再补齐内容。

pipeline {
   
    //指定任务在哪个集群节点上执行
    agent any
	//声明环境变量,方便后面使用
	environment {
   
	    key='value'
	
	}
		
    stages {
   
        stage('拉取git仓库代码') {
   
            steps {
   
                echo '拉取git仓库代码-SUCCESS'
            }
        }
		stage('通过maven构建项目') {
   
            steps {
   
                echo '通过maven构建项目-SUCCESS'
            }
        }
		stage('通过sonarqube做代码质量检测') {
   
            steps {
   
                echo '代码质量检测-SUCCESS'
            }
        }
		stage('通过docker制作自定义镜像') {
   
            steps {
   
                echo 'docker制作自定义镜像-SUCCESS'
            }
        }
		stage('将自定义镜像推送到harbor仓库中') {
   
            steps {
   
                echo '推送到harbor仓库-SUCCESS'
            }
        }
		stage('通过publish  over  ssh通知目标服务器') {
   
            steps {
   
                echo '通知目标服务器-SUCCESS'
            }
        }
    }
}

生成jenkins 流水线脚本

点击下方的流水线语法
在这里插入图片描述例如:我要从git上下载代码
在这里插入图片描述
下面填好之后
在这里插入图片描述
点击生成流水线脚本
在这里插入图片描述
把生成的脚本粘贴到对应的步骤下
在这里插入图片描述
这样就完成了流水线代码的生成。
可以在对应的stage处查看对应步骤的日志。
在这里插入图片描述

使用git维护Jenkinsfile文件

在gitlab一个项目中创建Jenkinsfile,可以在一个单独的项目中,也可放到对应项目中
在项目目录下创建Jenkinsfile文件,名称必须是这样的。J为大写的。
将内容放到该文件中

;