Jenkins+Rancher+Harbor+Gitlab部署应用到生产环境

本文详细介绍如何利用Jenkins与Rancher进行项目的持续集成与部署,包括环境准备、服务安装、配置流程及自动化脚本编写,实现一键部署效果。

Jenkins结合rancher进行项目的持续集成,这个流程其实跟之前的java项目、React项目、安卓项目的持续集成都差不多。但是相较之前的项目部署来说,在流程上多了很多的步骤,需要注意的地方比较多,所以在这里以部署一个java的demo项目进行演示和记录。

一、环境准备

本次实验的主机系统全部为CentOS Linux release 7.6.1810 (Core)

1、需要用到的服务
应用 版本
Jenkins 2.213
Gitlab 11.9.9
Rancher 2.3.5
Harbor 1.10.0
2、准备rancher-cli

要想Jenkins能远程控制rancher,需要借助rancher-cli这个工具来实现。具体的配置方法可以参考:rancher-cli的使用

3、准备rancher存储类(StrongClass)

在k8s中,关于存储的概念有3个:PV、PVC、StrongClass,在规划存储之前,最好想了解下这三个概念,可以参考下这篇文章:Kubernetes PV与PVC

前面已经搭建了一个3个节点的rancher集群,因为考虑应用的日志问题,所以这里准备一个存储类用于应用日志目录的挂载。

首先进入到将要部署应用的集群中,点击应用商店,选择启动,搜索nfs,点击进去并拉到页面最下方点击启动进行安装,操作流程如下图:
在这里插入图片描述

部署完成后,可以在集群的工作负载中看到对应的服务。
在这里插入图片描述
在这里做一个小小的规划:后续所有应用的日志都通过这个nfs服务进行汇总到一台主机这个nfs共享目录中,这样开发人员在点击jenkins进行部署完成之后,不需要知道这中间复杂的过程,直接去一个统一的位置查看日志就行了。

所以我打算将rancher集群中的node2(192.168.0.52)/data目录共享出来(当然比较好的做法是单独的挂载一块容量较大的硬盘到/data目录)

注意:这个nfs共享的分区需要使用xfs格式,否则后期可能会出现pod挂载失败的报错。报错的内容如下:

Unable to mount volumes for pod "isj-eureka-57fb65b885-wf77q_isj(b0b0594f-715e-11e9-884a-0050568fa4d0)": timeout expired waiting for volumes to attach or mount for pod "isj"/"isj-eureka-57fb65b885-wf77q". list of unmounted volumes=[eureka]. list of unattached volumes=[eureka default-token-9wmpb]

接着来对刚才在应用商店部署的nfs服务进行一些调整,来满足上面的这个小小规划的需求。点击右边三个小点,选择升级,然后更改一些配置信息。
在这里插入图片描述

这里修改了两个地方:

1)主机调度:让pod绑定在node2(192.168.0.52)上。

2)数据卷:卷名可以自定义,主机路径改成我们预设的/data目录。

调整之后,点击最下方的升级就生效了,这样一个nfs的存储类就创建完成了。后续需要用到存储的时候,可以直接从这个存储类中划分,非常方便。

4、添加持久卷声明(PVC)

上面的存储类配置之后不能直接应用,还需要添加持久卷声明(PVC)才能用。

来到集群的PVC栏目中,点击添加PVC
在这里插入图片描述
配置如下:
在这里插入图片描述
名称:可以自定义。
命名空间:我这里是根据项目来规划命名空间的,所以选择demo。如果没有项目的命名空间,可以新建一个。
来源:选择使用存储类创建新的持久卷(PV)
存储类:选择刚才创建的nfs-provisioner
容量:因为这里上面nfs共享的分区的空间不大,我这里就限制为20G。

点击创建,就能在PVC列表中看到一个20G大小的PVC了,后面的应用部署将会用到这个PVC。

二、相关服务安装

需要用到的各个服务的详细安装这里就不讲了,有需要的可以直接点击参考一下:

  • <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值