首页 体育 教育 财经 社会 娱乐 军事 国内 科技 互联网 房产 国际 女人 汽车 游戏

再见Jenkins,从Gitlab代码提交到k8s服务持续交付只需七毛三

2020-01-23

日常开发中,信任咱们现已做了许多的主动化运维环境,用的最多的想必便是运用Jenkins完成代码提交到主动化测验再到主动化打包,布置全流水线

Jenkins在devops担任了很重要的人物,可是另一方面信任现在咱们的代码版别办理大多都是交给git来办理,在企业私有布置的大布景下,Gitlab因为丰厚的插件和细粒度更高的权限操控被咱们所选用。

假如仅仅把Gitlab作为代码版别办理,那就大大糟蹋他的附加价值,在Gitlab中自带CICD功用,此功用就可彻底替代Jenkins,这样一来,咱们就不用保护多套体系,简化开发到运维的复杂度

实践

因为gitlab资源耗费严峻,本地没有建立,所以运用gitlab官方

注册地址:https://gitlab.com/

并在项目中参加支撑Docker容器的Dockerfile文件和支撑触发gitlab CICD功用的 .gitlab-ci.yml脚本文件

最终的目录是这样

这两个文件的内容大致是

Dockerfile

推送Gitlab后的目录

装置就简略几步再不赘述,装置教程,

因为运用的gitlab 非企业版官方,所以就只能用它供给的同享runner,企业私有布置的gitlab,一般办理员会给每个开发人员分配一个注册令牌token用来与runner绑定

装置runner时,将gitlab地址和注册令牌在需求填入的时填入即可授权此runner与Gitlab交互

Runner大致便是用来履行一系列脚本的载体,当gitlab有代码提交,gitlab会告诉与之对应的runner,费事runner帮他履行提早写好的脚本规矩,履行的每一步状况会告诉gitlab,gitlab会在CICD操控面板打印出来

只需当根目录包含了.gitlab-ci.yml文件的项目提交至Gitlab,就会主动触发CICD,然后告诉对应的Runner履行脚本,并将状况打印

点击每个JOb可看到内部履行的方案和输出,此处和jenkins流程相似

因为.gitlab-ci.yml文件包含了推送镜像到镜像库房,此刻咱们翻开镜像库房即可看见编译打包上传好的镜像

此刻有了镜像,那咱们就可以依托此镜像创立k8s集群服务

创立k8s服务的大致进程为:

只需在云厂商操控台启用对应进程并装备即可完成一个k8s集群的容器服务,此进程各渠道略有不同

因为考虑到云k8s服务按量付费没有最低余额约束,阿里云则需求100余额的门槛,所以在云充值了1.6元来进行试验

云各进程文档:

创立集群 :https://cloud.tencent.com/document/product/457/9091

镜像库房 :https://cloud.tencent.com/document/product/457/9117

创立服务 :https://cloud.tencent.com/developer/article/1412348

以上进程创立结束可在运用中心服务一栏可看到当时正在运转的服务,此处我设置为Pod为2个,适当于此服务下两个站点实例作为一个集群

现在咱们现已依托gitlab的runner服务推送的镜像创立了k8s容器服务

但每次提交镜像都得人为去重置服务并挑选新的镜像,这个重复庸俗的劳动进程想必谁都不想去做,

这时候就要用到云厂商供给的触发器来操作这个重复的进程。

提早制定好触发规矩,例如匹配到某tag称号或许创立时刻,即主动进行拉取镜像创立服务的进程

点击增加触发器

这儿触发规矩挑选了只需有新版别就触发,而且挑选被触发的服务,镜像提交,即更新服务拉取最新镜像构建

修正恣意gitlab库房代码,提交,然后等构建完成后,进入云的触发器页面

显现触发成功,此刻服务现已运用了最新的docke镜像版别

检查一下账户余额,发现还有0.87元。。。封闭集群。。待下次继续运用

以上是GItlab与云完成代码提交到容器继续交给的进程,其他例如阿里云流程也相似

这儿不得不夸奖一下云,容器服务没有最低消费约束,几毛钱就能让广大群众学习K8S容器服务,对开发者很友爱。。激烈安利。。

热门文章

随机推荐

推荐文章