k8s+Jenkins+GitLab-自动化部署项目(强推)

作者:微信小助手

发布时间:2021-03-03T09:56:11

一、闲聊


 现在基本上是隔几天写一篇文章,还是不够勤奋,努力把自己打造成勤奋的人,把工作上面所用到的技术点分享给大家。为了研究k8s自动化部署aspnet core项目,足足花费了我一个礼拜的时间,过程是痛苦的,但结果是美好的。

如果以下内容有不足的地方,请指出,我会第一时间更正。谢谢大家。

二、部署流程介绍


  1、先上一下手绘导图,大致的流程图如下:(不喜勿喷呀)

大致的部署流程是这样的:开发人员把做好的asp.net core项目代码通过git推送到gitlab,然后Jenkins通过 gitlab webhook (前提是配置好),自动从拉取gitlab上面拉取代码下来,然后进行build,编译、生成镜像、然后把镜像推送到Harbor仓库;然后在部署的时候通过k8s拉取Harbor上面的代码进行创建容器和服务,最终发布完成,然后可以用外网访问。(ps:看着我讲这么简单,但心里有许多小鹿在心里乱撞,没关系,下面将会好好的分享给大家)

 

当然啦,上面只是粗略的,请看下图才更加形象。

 

 2、先介绍一下我的服务器IP和在各个服务器上面所安装的内容

ps:由于我的电脑配置有限,运行太多的虚拟机会导致内存空间不够用,因此就弄了三台,已经是极限了。

如果大家对于k8s怎么部署,请看我之前的文章有介绍。前提是要安装好docker环境、gitlab等

IP 角色
192.168.161.151 master1、Harbor、Jenkins
192.168.161.152 node1
192.168.161.153 node2、Gitlab

 

三、部署Harbor仓库


 第一步:下载harbor二进制文件:https://github.com/goharbor/harbor/releases

第二步:安装 docker compose

命令:

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

然后把下载的docker-compose 设置可执行权限

命令:chmod +x /usr/local/bin/docker-compose

第三步:此处应该设置自签证书的,即访问的时候是采用HTTPS进行访问的。此处略去,不影响我们接下去的部署。(后期会出一篇关于自签证书的文章,仅供参考)

第四步:将下载好的Harbor二进制包上传到服务器上面,然后解压出来

解压的命令为:tar xzvf 包名

 

第五步:进入解压出来的文件夹harbor中,有如下文件。

 

配置文件,vi harbor.cfg

把其中的hostname修改为:master1 的IP地址。

 

然后 修改harbor的登录密码:为了方便起见,我修改为123456,大家可自行修改

 

 第六步:在当前文件夹中开启harbor

执行命令:

./prepare

 

 

./install.sh  (运行此处的时候需要一定的时间,请等待吧)

 

 

 第七步:启动成功,查看一下(完美的运行)

docker-compose ps

 

 用浏览器查看一下(出现以下内容,代表成功,完美)

进入到里面后,我先在用户管理中创建了一个用户  louie 。大家自行创建,为了后期需要把一些依赖镜像先推送到harbor仓库中。然后在项目中创建项目,如下:

所创建的项目,并且,我在每个项目中都加入了我刚才所创建的用户,方便后期登录并推送镜像

                            

此处介绍一下我的项目,coresdk 主要用来存放  asp.net core 所需要的sdk;ops主要是用来存放的jenkins镜像和jenkins-slave镜像;projectdemo 主要存放我的asp.netcore 项目的镜像,供k8s拉取。