jenkins+k8s构建部署maven项目

一、jenkins配置

系统管理>>系统配置:

1)配置构建时间戳格式yyyyMMddHHmmss:

jenkins+k8s构建部署maven项目_第1张图片

2)配置SSH Servers为kubectl云主机:

jenkins+k8s构建部署maven项目_第2张图片

其中/root/jenkins目录为存放各服务yaml部署脚本路径

系统管理>>全局工具配置:

配置maven和jdk:

jenkins+k8s构建部署maven项目_第3张图片
jenkins+k8s构建部署maven项目_第4张图片

二、任务构建

1)创建视图npc_dev,在视图下新建任务,如图:

任务名称命名规范:项目简写_环境_服务

jenkins+k8s构建部署maven项目_第5张图片

2)设置保存最近的3个构建记录:

jenkins+k8s构建部署maven项目_第6张图片

3)设置git源码拉取:

jenkins+k8s构建部署maven项目_第7张图片

填写服务git仓库地址,分支,用户名密码

Credentials点击添加如下:

jenkins+k8s构建部署maven项目_第8张图片

4)Maven打包设置:

点击构建>增加构建步骤>调用顶层Maven目标,如图:

jenkins+k8s构建部署maven项目_第9张图片

选择Maven版本为maven,填写目标为 clean package -Dmaven.test.skip=true -P npc_dev

jenkins+k8s构建部署maven项目_第10张图片

其中-P npc_dev为对应环境,根据需要使用的application-npc_dev.properties文件变化

5)Docker镜像构建:

点击构建>增加构建步骤>Docker Build and Publish,如图:
jenkins+k8s构建部署maven项目_第11张图片

设置镜像仓库地址,如图:

jenkins+k8s构建部署maven项目_第12张图片

其中Repository Name为京东云镜像仓库地址,可登录京东云容器镜像仓库进行创建和查询

Tag为构建的docker镜像版本,格式:

${GIT_COMMIT}-${BUILD_TIMESTAMP},
${GIT_COMMIT}为git仓库commit版本,${BUILD_TIMESTAMP}为构建时的时间戳

6)设置执行k8s部署脚本:

该步骤完成从jenkins发送服务的yaml部署脚本至kubectl服务器,并执行yaml

点击构建>增加构建步骤>Send files or execute commands over SSH,如图:

jenkins+k8s构建部署maven项目_第13张图片

设置kubectl服务器地址和yaml部署脚本中的变量替换,如图:

jenkins+k8s构建部署maven项目_第14张图片

参数说明:

Name:选择全局配置好的kubectl服务器名称

Source files:项目根目录下的yaml脚本名称

Remote directory:kubectl服务器的路径,用来存放发送过去的yaml路径,前缀为ssh server设置的路径/root/jenkins,即该cache.yaml存放目录为/root/jenkins/dev

Exec command:远程服务器kubectl上执行的shell命令,主要功能为替换yaml文件中的变量并apply该yaml

变量说明:

app_name:服务名称

pod_name:  pod名称前缀

group:分组名称

filepath:yaml文件路径

namespace:k8s命名空间

port:服务端口

registry:京东云镜像仓库注册表地址

project:京东云镜像仓库地址

tag:使用的部署镜像版本        

replicas:pod的副本数量

7)完成以上步骤后点击保存按钮,然后点击“立即构建”按钮进行部署,点击“控制台输出”可查询构建过程日志 :

jenkins+k8s构建部署maven项目_第15张图片

日志最后出现SUCCESS,表示部署成功:

jenkins+k8s构建部署maven项目_第16张图片

部署成功后可登录kubectl服务器查看pod状态和日志:

在这里插入图片描述

Running表示pod启动成功,可进一步进入pod查看应用启动日志:

kubectl -n npc exec -it eureka-dev-848f5dcb77-9qkpl /bin/bash

cd /export/Logs/eureka.ecc.jcloud

tail -f main.log

至此服务部署完成,如遇到报错可具体分析,并修改相关配置

你可能感兴趣的:(jenkins)