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)节省资源的利用
架构流程关系图
流程梳理
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 +......
三:小的测试
使用rancher部署一个redis
新建一个项目,以及命名空间。然后点击部署服务,拉取镜像,端口映射等等
启动后本地连接测试一下
小的测试已经成功
后面的串接工作还在测试
本文来自博客园,作者:Diamond-fz,转载请注明原文链接:https://www.cnblogs.com/fzstudy/p/15335436.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示