Gitlab+jenkins+harbor+rancher+k8s CI/CD部署实践

一:概述

     当我们想正式上线一个服务,或者搭建一个可以访问的测试环境;一方面我们需要进行大量的准备工作,包括但不限于数据库,代码运行环境等的安装调试,还需要进行系统的监控等等。另一方面,当我们代码还需要改动的时候,我们又得重新把服务打包然后往服务器上面部署。
     想想这都是很可怕的,按照上面这些步骤十分的繁琐,其中有一点步骤错了,可能就会有很大的差错。现在我们就有相应的解决方案,极大了减少了开发、运维的时间成本。
      以下是我从公司中实践搭建的一套集群持续集成部署。供后续参考学习!

首先对这几个组件的功能有个大致的认识

Gitlab

(1)自建代码托管仓库
(2)构建镜像所需要的Dockerfile文件

Jenkins

(1)拉取gitlab中的代码。
(2)打包构建镜像,推送到私有仓库harbor
(3)部署到k8s集群

Harbor

(1)搭建的自己的容器镜像仓库

Rancker

(1)用Rancher来管理k8s集群:两者的关系是Rancher对k8s进行了功能的拓展与实现了和k8s集群交互的一些便捷工具,包括执行命令行,管理多个 k8s集群,查看k8s集群节点的运行状态等等,就好比是一个可视化的界面。

K8s

(1)可移植容器的编排管理工具
(2)更快的部署上线服务
(3)自动的扩容缩容
(4)节省资源的利用
 
 
 

架构流程关系图

image
 

流程梳理

1.开发人员提交新代码到gitlab
2.手动去执行jenkins构建(或者gitlab钩子触发jenkins执行构建),拉去最新的代码,包含Dockerfile构建镜像的文件
3.jenkins执行shell脚本:以maven打包代码生成jar包,并且通过dockefile构建成镜像
4.把构建好的镜像推送至harbor私有镜像仓库
5.rancher重新拉去镜像,重新发布服务部署在k8s集群中

二:准备工作

这些是以集群部署的,至少是一主一从,并且每台服务器至少保证是2核2G,我这里部署的是1主3从的集群!

关于gitlab的搭建参照链接:https://www.cnblogs.com/fzstudy/p/15335696.html
关于jenkins搭建参照链接:https://www.cnblogs.com/fzstudy/p/15335816.html
关于rancher搭建并导入k8s参照链接:https://www.cnblogs.com/fzstudy/p/15335903.html
关于k8s的搭建参照链接:https://www.cnblogs.com/fzstudy/p/15336062.html
harbor搭建也是很简单,直接官网下载解压install即可,自行百度!,需要配置好https,然后再各个服务器上添加docker的私服配置,用docker login +......
image

三:小的测试

使用rancher部署一个redis

新建一个项目,以及命名空间。然后点击部署服务,拉取镜像,端口映射等等
image
image
启动后本地连接测试一下
image
小的测试已经成功

后面的串接工作还在测试

posted @ 2021-09-25 20:35  Diamond-fz  阅读(955)  评论(0编辑  收藏  举报