LOADING

加载过慢请开启缓存 浏览器默认开启

基于Gitlab Runner的CI/CD搭建

前言

我已经搭建了很多七七八八的服务 应该是完全满足DevOps的需求了

但我还完全没有体验过整个流程呢

刚好我自己给Aqua的前端改了点代码 我决定搞一个自动部署

折腾开始

需求很简单,在我改完代码之后Push到我自己的Gitlab,然后自动Build镜像并推送到我的Harbor,然后Kubernete Deployment Rollout拉取新镜像

我不打算用Jenkins 一个是他的UI老丑 一个就是没必要 Gitlab对我已经很强大了

其实也是因为懒不想重新搭一个

一个是我后面去看了Jenkins的逻辑是在Agent上部署搭建环境然后构建 那就意味着

Nodejs要一个Agent Python要一个 Java要一个 当然你可以把所有环境塞在一台机器里 但那何必呢

Docker拉构建环境的镜像 构建后用后即焚 节省资源同时能保证环境的一致 同时也便于更新

Gitlab Runner的搭建

那首先肯定是要搭建Runner,直接在K8s部署肯定是最好的

首先先去Gitlab创建一个runner拿到token

chrome_Q7zJHn0Q3i.png

然后连上Master

helm repo add gitlab https://charts.gitlab.io
helm install gitlab-runner \
  --namespace=gitlab-runner \
  --create-namespace \
  --set gitlabUrl=https://gitlab.example.com \
  --set runnerToken=xxx \
  --set rbac.create=true \
  --set rbac.clusterWideAccess=true \
  gitlab/gitlab-runner

我们让helm自己创建serviceAccount就好 不给自己埋坑(

chrome_MHyUxcTMJC.png

没啥问题 接下来就是下一步

CI/CD配置

需求大概是:

  1. 我Push代码到我自己的Gitlab
  2. Gitlab Runner开始执行流水线,npm build出静态文件
  3. 构建Nginx镜像
  4. Push到Harbor
  5. K8s触发Rollout