系统管理>>系统配置:
1)配置构建时间戳格式yyyyMMddHHmmss:
2)配置SSH Servers为kubectl云主机:
其中/root/jenkins目录为存放各服务yaml部署脚本路径
系统管理>>全局工具配置:
配置maven和jdk:
1)创建视图npc_dev,在视图下新建任务,如图:
任务名称命名规范:项目简写_环境_服务
2)设置保存最近的3个构建记录:
3)设置git源码拉取:
填写服务git仓库地址,分支,用户名密码
Credentials点击添加如下:
4)Maven打包设置:
点击构建>增加构建步骤>调用顶层Maven目标,如图:
选择Maven版本为maven,填写目标为 clean package -Dmaven.test.skip=true -P npc_dev
其中-P npc_dev为对应环境,根据需要使用的application-npc_dev.properties文件变化
5)Docker镜像构建:
点击构建>增加构建步骤>Docker Build and Publish,如图:
设置镜像仓库地址,如图:
其中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,如图:
设置kubectl服务器地址和yaml部署脚本中的变量替换,如图:
参数说明:
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)完成以上步骤后点击保存按钮,然后点击“立即构建”按钮进行部署,点击“控制台输出”可查询构建过程日志 :
日志最后出现SUCCESS,表示部署成功:
部署成功后可登录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
至此服务部署完成,如遇到报错可具体分析,并修改相关配置