前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >再见Jenkins,从Gitlab代码提交到k8s服务持续交付只需七毛三

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

作者头像
leon公众号精选
发布2022-04-27 14:19:24
1.2K1
发布2022-04-27 14:19:24
举报
文章被收录于专栏:架构师高级俱乐部

Gitlab runner 快速搭建CICD pipeline

背景

日常开发中,相信大家已经做了很多的自动化运维环境,用的最多的想必就是利用Jenkins实现代码提交到自动化测试再到自动化打包,部署全流水线 Jenkins在devops担任了很重要的角色,但是另一方面相信目前大家的代码版本管理大多都是交给git来管理,在企业私有部署的大背景下,Gitlab由于丰富的插件和细粒度更高的权限控制被大家所采用。 如果只是把Gitlab作为代码版本管理,那就大大浪费他的附加价值,在Gitlab中自带CICD功能,此功能就可完全代替Jenkins,这样一来,我们就不必维护多套系统,简化开发到运维的复杂度 实践 由于gitlab资源消耗严重,本地没有搭建,所以使用gitlab官方

第一步注册gitlab账户(企业私有部署可忽略此步骤)

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

第二步创建项目并推送至gitlab仓库

并在项目中加入支持Docker容器的Dockerfile文件和支持触发gitlab CICD功能的 .gitlab-ci.yml脚本文件(此文件必须放在根目录) 最后的目录是这样

这两个文件的内容大致是 Dockerfile

推送Gitlab后的目录

第三步安装gitlab Runner。

安装就简单几步再不赘述,安装教程(https://docs.gitlab.com/runner/install/windows.html), 由于使用的gitlab 非企业版官方,所以就只能用它提供的共享runner,企业私有部署的gitlab,一般管理员会给每个开发人员分配一个注册令牌token用来与runner绑定 安装runner时,将gitlab地址(不包含仓库)和注册令牌在需要填入的时填入即可授权此runner与Gitlab交互 Runner大致就是用来执行一系列脚本的载体,当gitlab有代码提交,gitlab会通知与之对应的runner,麻烦runner帮他执行提前写好的脚本规则(runner可安装支持一个项目也可共享出来支持多个项目),执行的每一步状态会通知gitlab,gitlab会在CICD控制面板打印出来

第四步自动触发CICD

只要当根目录包含了.gitlab-ci.yml文件的项目提交至Gitlab,就会自动触发CICD,然后通知对应的Runner执行脚本,并将状态打印

点击每个JOb可看到内部执行的计划和输出,此处和jenkins流程类似

由于.gitlab-ci.yml文件包含了推送镜像到镜像仓库,此时我们打开腾讯镜像仓库即可看见编译打包上传好的镜像

此时有了镜像,那我们就可以依靠此镜像创建k8s集群服务

第五步启用云厂商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容器服务,对开发者很友好。。强烈安利。。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师高级俱乐部 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Gitlab runner 快速搭建CICD pipeline
    • 背景
      • 第一步注册gitlab账户(企业私有部署可忽略此步骤)
      • 第二步创建项目并推送至gitlab仓库
      • 第三步安装gitlab Runner。
      • 第四步自动触发CICD
      • 第五步启用云厂商k8s容器编排服务
      • 第六步创建镜像触发器
      • 测试
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档