jenkins+pipeline+harbork8s实现自动化部署
1、安装jenkins1.登陆linux,在linux上执行docker命令,拉去jenkinsci/blueocean镜像并运行镜像。命令如下:docker run \ -d \ -u root \ -p 8080:8080 \ -v jenkins_home:/var/jenins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean2.访问http://localhost:8080地址,会出现解锁界面3.使用docker logs 命令从日志信息中 复制自动生成的密码(在两组星号之间)。4.在 解锁Jenkins 页面, 粘贴密码并继续。5.解锁jenkins后,在界面中选择“安装建议的插件”。6.最后,jenkins要求创建管理员用户。创建新用户或使用admin用户,按照步骤完成后即可登录使用jenkis了。

2、准备spring boot工程1.创建spring boot基础工程,添加一个示例Controller类。2. 修改application配置文件,设置端口3.编译运行,访问http://localhost:8082地址可以看到示例运行结果。

3、添加Dockerfile在工程根目录创建Dockerfile,用来构建docker镜像。from: 指定基础镜像workdir: 工作目录,指定之后下面的命令都在这个目录下执行copy: 复制jar文件到指定目录entrypoint :和CMD类似都是配置容器启动后执行的命令,并且不可被docker run提供的参数覆盖。

5、添加Jenkinsfile在工程根目录创建Jenkins酆璁冻嘌file,用来执行jenkins pipeline任务。parameters中变量说明: HARBOR_HOST:harbor镜像仓库地址。 DOCKER_IMAGE:docker镜像名,包含harbor项目名称。 APP_NAME:k8s中的标签名称,对应k8s的yaml模板中的{APP_NAME}。 K8S_NAMESPACE:k8s中的namespace名称,执行kubectl命令会部署至此命名空间。stages说明: Git Tag :获取gitlab最新版本的tag标签 Maven Build:执行maven命令 Docker Build:通过sh依次执行docker命令登录harbor、构建镜像、上传镜像、移除本地镜像。 运行kubectl:执行kubectl命令。在执行前先将K8S_CONFIG中的内容进行base64解密并存为~/.kube/config配置文件,然后执行sed命令将k8s-deployment.tpl文件中“{参数名}”形式参数替换为实际的参数值,最后执行kubectl命令部署至k8s。以下部分定义slave Pod 的执行环境,和设置挂载master的目录注意:在使用maven镜像的时候,因为我们项目使用的是私有仓库,所以需要定制镜像。否则,在下载依赖的时候会报错。定制镜像的步骤请自行查找资料


8、配置 pipeline任务进入任务的配置界面,在流水线(pipeline)设置部分,选择“Pipeline script from SCM”。SCM选项选为“Git”,配置好工程的git地址以及获取代码的凭证信息。然后在“Additional Behaviours”中添加“Clean before checkout”。



11、配置cloudJenkins 地址和Jenkins 通道一定要配置正确,否则Slave Template会创建失败。

12、测试pipeline任务1.在创建的pipeline任务中,点击“立即构建”即可立即执行pipeline任务。2.执行成功后,查看harbor镜像仓库,docker镜像成功上传至harbor。3.执行成功后,查看k8s中pod运行日志,服务启动成功。


13、设置gitlab自动触发jenkins这一步比较简单,此篇不再赘述。请参考网上其他教程