上海市建设注册管理网站,做期货看哪些网站,百科网站开发,织梦手机网站免费模板Gitlab runner 快速搭建CICD pipeline背景日常开发中#xff0c;相信大家已经做了很多的自动化运维环境#xff0c;用的最多的想必就是利用Jenkins实现代码提交到自动化测试再到自动化打包#xff0c;部署全流水线Jenkins在devops担任了很重要的角色#xff0c;但是另一方面… 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可安装支持一个项目也可共享出来支持多个项目)执行的每一步状态会通知gitlabgitlab会在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容器服务对开发者很友好。。强烈安利。。