前言
我已经搭建了很多七七八八的服务 应该是完全满足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

然后连上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就好 不给自己埋坑(

没啥问题 接下来就是下一步
CI/CD配置
需求大概是:
- 我Push代码到我自己的Gitlab
- Gitlab Runner开始执行流水线,npm build出静态文件
- 构建Nginx镜像
- Push到Harbor
- K8s触发Rollout