一、参考:

Jenkins+harbor+gitlab+k8s 部署maven项目

二、环境介绍

操作系统

ip

角色

版本

访问地址

CentOS7 64位

192.168.254.128

k8s node

1.17.4-0

CentOS7 64位

192.168.254.129

k8s node

1.17.4-0

CentOS7 64位

192.168.254.130

k8s master

1.17.4-0

CentOS7 64位

192.168.254.131

harbor

v2.0.0

http://192.168.254.131/

CentOS7 64位

192.168.254.132

gitlab

13.0.3-ce.0.el7

http://192.168.254.132/

CentOS7 64位

192.168.254.134

jenkins

2.239

http://192.168.254.134:8080/

注意:Jenkins安装之后,还需要做以下配置。否则无法实现本文章的功能!!!

三、gitlab创建项目

  1. 登录gitlab,创建一个项目springcloud-demo

k8s部署gitlabrunner k8s部署gitlab+jenkins_docker

  1. 点击 设置–> 成员:添加2个成员(如果没有,需要先创建),一个是jenkins用户,用来拉取代码的。一个是开发用户,用来提交代码的。
    注意:我的账号,权限要高一些,可以直接提交到master分支。
  2. 将本地代码提交到刚刚创建的项目中

四、harbor 创建用户和项目

  1. 登录到harbor后台,点击创建用户

k8s部署gitlabrunner k8s部署gitlab+jenkins_jar_02

  1. 创建项目

    这是创建好的项目
  2. 添加项目成员
    点击创建好的项目->成员->+用户

    将刚刚创建的用户拉进来,注意分配合适的角色

五、jenkins修改默认用户

使用jenkins执行shell命令时,可能会出现权限不足的情况。
查看jenkins默认用户

vi /etc/sysconfig/jenkins

把JENKINS_USER值改为root用户,重启jenkins

service jenkins restart

六、jenkins和k8s master做ssh免密

因为jenkins需要登录到k8s master,执行一些k8s命令。

七、jenkins登录harbor

  1. 修改Jenkins服务器上的docker配置文件,添加harbor地址
vim /etc/docker/daemon.json
  1. 添加内容如下:
"insecure-registries": ["192.168.254.131"]
  1. 重启docker
systemctl restart docker
  1. 测试登录
[root@localhost default]# docker login 192.168.254.131 -u jenkins -p Jenkins@1234
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@localhost default]#

八、jenkins创建maven项目

  1. 新建任务
  2. 设置参数化构建
  3. k8s部署gitlabrunner k8s部署gitlab+jenkins_docker_03

  4. 设置源代码
    输入仓库下载地址,选择用户root
  5. k8s部署gitlabrunner k8s部署gitlab+jenkins_k8s部署gitlabrunner_04

  6. 设置maven构建命令
  7. k8s部署gitlabrunner k8s部署gitlab+jenkins_Jenkins_05

  8. jar包打包成docker镜像并推送
    build构建后将源码打成了jar包,需要再执行shell将jar包构建成docker镜像并推送到harbor
  9. k8s部署gitlabrunner k8s部署gitlab+jenkins_docker_06

  10. 将下面的内容,贴过去
#!/bin/bash

jarName=eurekasvr-0.0.1-SNAPSHOT.jar
jarFolder=$JOB_NAME
harborPro=springcloud-demo
projectName=$JOB_NAME

docker_path=${WORKSPACE}

cp ${WORKSPACE}/target/${jarName} ${docker_path}
chmod 755 ${WORKSPACE}/deployment/deploy_docker.sh
bash -x ${WORKSPACE}/deployment/deploy_docker.sh ${harborPro} ${projectName} ${docker_path} ${jarName}
  1. k8s master 操作
    重新部署k8s应用
chmod 755 ${WORKSPACE}/deployment/reboot_app.sh
bash -x ${WORKSPACE}/deployment/reboot_app.sh