目的:亲手搭建一套自动化cicd环境,体验devops的魅力
整体博文分为:整体架构、环境准备、逐步搭建 三个部分,最终实现效果为,可以在push代码之后,直
接通过流水线,自动制作镜像,推送到镜像仓库,拉取到容器,销毁旧容器,拉起新容器并对外提供服务的效果。如果想减少搭建过程中的问题,请尽量使用文中使用的版本作为实验版本,避免因版本不一致导致的问题。
逻辑流程
推送代码至git仓库
jenkins拉取git代码
jenkins调用maven命令,进行打包,形成jar包
jenkins调用docker命令,进行image镜像制作
推送镜像到harbor镜像仓库,以便于后续拉取镜像部署
调用kuboard进行拉取镜像、部署镜像等操作
简单介绍下上述图片中的各组件作用
gitlab:存放代码的仓库
maven:用于构建java代码,将java代码打包成jar
docker:用于制作docker镜像
harbor:类似于maven仓库,只不过harbor是存放docker镜像的
kuboard:一个图形化界面,用于管理k8s集群,可以操作集群扩缩容,查看容器日志、性能等功能
jenkins:用于执行各种脚本,串流程的工具,在这帮你执行拉取代码、调用maven、推送镜像等脚本
部署物理视图
部署主要分三台机器(此处家里练习,使用虚拟机即可)
tool:主要部署jenkins、git、docker、maven、harbor仓库等工具,此机器配置需要稍微好一点,毕竟打包编译都在此机器
k8s-master:k8s集群的管理节点,只需要一台
k8s-worker1:k8s的部署节点,可以多台,此处只使用一台演示,如需多台,则按教程再复制一台即可
教程将略过虚拟机的搭建,有需要的同学,请自行寻找虚拟机搭建教程。