Jenkins K8S Docker 一键部署SpringCloud微服务

本文详细介绍了如何使用Jenkins自动化部署SpringCloud微服务,包括配置SSH-KEY以实现无密码克隆Git代码,通过Jenkinspipeline自动拉取代码,使用Maven构建项目,将构建后的jar打包成Docker镜像并推送到Dockerregistry,最后通过K8S发布或更新服务。整个流程覆盖了从代码提交到服务部署的关键步骤。

前言

一键部署springcloud微服务,需要用到 Jenkins K8S Docker等工具,若未安装,请参考《Centos 7 安装K8S

本文使用jenkins部署,流程如下图

在这里插入图片描述

  1. 开发者将代码push到git
  2. 运维人员通过jenkins部署,自动到git上pull代码
  3. 通过maven构建代码
  4. 将maven构建后的jar打包成docker镜像 并 push docker镜像到docker registry
  5. 通过k8s发起 发布/更新 服务 操作

其中 2~5步骤都会在jenkins中进行操作

1、开发者将代码PUSH到Git

这一步本文不做详细描述

2、通过Jenkins部署,自动到Git上PULL代码

这里需要用到Jenkins 的 pipeline插件

2.1、 配置SSH-KEY

因为jenkins需要pull git上的代码,正常来说,代码都是私有的,git clone操作的时候会需要密码,就不能完成自动化操作了。这里使用SSH-KEY 的方式,让git clone操作无需密码就能完成克隆

2.1.1、生成/添加SSH公钥

在jenkins所在环境里执行

ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"  

注意:这里的 xxxxx@xxxxx.com 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱
现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱

按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_ed25519.pub 文件内容,获取到你的 public key
在这里插入图片描述

得到公钥 public key 内容

cat ~/.ssh/id_ed25519.pub

复制备用

2.1.2、将公钥配置到git平台

git平台可以是github,gitee,也可以是自己搭建的gitlab等
我这里使用gitee
通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。
在这里插入图片描述
添加成功后,到jenkins所在环境运行

ssh -T git@gitee.com

在这里插入图片描述
首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You’ve successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功

2.1.3、测试

复制你项目的SSH链接
在这里插入图片描述
在jenkins所在环境
执行git clone git@gitee.com:xxxx.git
在这里插入图片描述

2.2、配置Jenkins的pipeline 自动clone代码

2.2.1、Jenkins创建任务

新建任务
在这里插入图片描述

选择流水线 确定

在这里插入图片描述

这里勾选参数化构建,选择字符参数,用于输入构建代码的版本
在这里插入图片描述
默认值填master,根据自身项目实际填写
在这里插入图片描述
拉到最下面的流水线,写pipeline脚本,如果不知道怎么写,可以点击流水线语法进行参考
在这里插入图片描述
这是我的脚本, REPOSITORY 填写项目的ssh地址,REPOSITORY_VERSION是刚刚配置的构建参数

pipeline {
   
   
    agent any
    
    environment {
   
   
        REPOSITORY="git@gitee.com:xxxxxx/cloud-demo.git"
    }
    
    stages {
   
   
        stage('拉代码') {
   
   
            steps {
   
   
                echo "start fetch code from git:${REPOSITORY}"
                deleteDir()
                git branch: "${REPOSITORY_VERSION}", url: "${REPOSITORY}"
            }
        }
    }
}

保存

2.2.2、测试拉代码流程

返回Jenkins 首页,选择刚刚创建的项目
在这里插入图片描述
点击右边的运行按钮

在这里插入图片描述
输入代码分支版本
点击开始构建
在这里插入图片描述
看到这里就是已经构建成功了
在这里插入图片描述
根据日志提示的目录,可以看到目录下已经有代码了

3、通过maven构建代码

3.1、maven插件安装

因为这里使用到了maven,jenkins需要先安装maven工具

3.2、maven构建项目

补充pipeline脚本

pipeline {
   
   
    agent any
    
    environment {
   
   
        REPOSITORY="git@gitee.com:xxxxxx/cloud-demo.git"
        MODULE="cloud-demo-m-test-dubbo-service"
    }
    
    stages {
   
   
        stage('拉代码') {
   
   
            steps {
   
   
                echo "start fetch code from git:${REPOSITORY}"
   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值