• Post author:
  • Post category:运维
  • Post comments:0评论
  • Reading time:3 mins read

最近在自己的服务器上k8s环境和公司的测试服务器docker环境下各搭了一套cicd,遇到了很多坑,且国内查不到什么中文资料,所以特此记述一下遇到的问题,和解决的过程。

考虑到实际上很少有人有自建的k8s集群,更多的是单一的云服务器使用docker来部署自己的项目,而恰好我也在公司的测试环境下也搭建了一套docker的cicd,所以本系列文章将分为K8S版和Docker版,读者可以按需浏览。

Docker版的CICD在部署的过程中我尽可能使用简单的docker run命令来启动应用,而K8S版的应用则尽可能使用Helm进行安装,以此实现最简单,最快捷,一键部署开盖即食的效果。

先简述一下两条路线的流程吧。

自有服务器K8S的CICD流程

Github -> Gitea -> drone & alirepo -> k8s

这里没有直接对接github是因为最近github越来越不稳定了,我阿里云服务器在clone时真就是薛定谔的clone,三次能有一次成功就不错了,经常拉不到代码,但好在国内访问国外不行,但github国外推国内到是没问题,所以这里就用本地搭建的轻量级代码仓库gitea做了一个镜像仓库,当gitea收到push等event的时候,就会webhook到drone进行ci流程了。

公司内网测试环境Docker的CICD流程

Gitlab -> Gitea -> drone & 内网私仓 -> 测试服务器Docker环境

那有的小伙伴就要问了,为啥内网Gitlab你也要垫一层Gitea呢,这个事情其实是这样的,Drone在同步仓库列表时,只能同步到创建人的仓库,也就是说,你不是代码仓库的拥有者,无论什么权限都无法在drone里看到这个仓库,一般公司代码仓管的拥有者都是运维,然后我公司的Gitlab并没有配置runner,所以CICD功能实际上并用不了,而且我个人来讲更想用自己已经会了的技术,而不是再去研究一个其他的cicd,那么为了解决这个问题,就是在gitlab上配置镜像推送,每次收到push等event,同步推送到gitea,注意这里我只推送了dev分支而不是mater,因为毕竟是测试环境嘛。

目录

本系列提供了K8S和Docker两种版本的搭建流程,请按需阅读。

Docker

  1. DOCKER搭建自己的企业级CICD(一)GITLAB镜像仓库
  2. DOCKER搭建自己的企业级CICD(二)部署DRONE
  3. DOCKER搭建自己的企业级CICD(三)DRONE的CI
  4. DOCKER搭建自己的企业级CICD(四)DRONE的CD

K8S

  1. K8S搭建自己的企业级CICD(一)GITHUB镜像仓库
  2. K8S搭建自己的企业级CICD(二)部署DRONE
  3. K8S搭建自己的企业级CICD(三)DRONE的CI
  4. K8S搭建自己的企业级CICD(四)DRONE的CD

DockerInDocker环境下的DockerBuild层缓存

葫芦

葫芦,诞生于1992年8月11日,游戏宅,胶佬,爱好摸鱼,一个干过超市收银,工地里搬过砖,当过广告印刷狗,做过电焊铁艺的现役.Net程序员。

发表回复