Kubernetes + GitLab 微服务应用自动化部署

笔者最近在负责公司研发中台的建设,以提升公司整体研发效率,其中很重要的一个环节就是解决从代码到运行中服务的部署效率问题。由于公司项目众多,以前都是各个项目各自为阵,每个项目都有自己的开发、测试环境,资源利用率低,浪费严重,并且基本采用传统手动部署方式,部署效率低且容易出错。经过调研,笔者最终选择了 Kubernetes + GitLab 的组合来实现了跨项目资源复用和应自动化部署。无论是开发、测试还是生产环境,每个环境各项目都共享同一个 Kubernetes 集群,复用同一套计算和存储资源。长期没有开发活动的项目可一键从开发和测试环境里下线,以让出资源给其它活跃项目,需要的时候可快速恢复开发和测试环境。对于开发、测试环境,每个项目每天都要部署多次,如果项目采用微服务架构,那么部署次数还会随着微服务数量翻倍,因此自动化部署就显得非常必要。通过使用 GitLab CI/CD,我们做到了在开发人员提交代码后就自动触发代码构建、镜像打包并部署到 Kubernetes 集群。


这是一个已从原 https://blog.jaggerwang.net/kubernetes-gitlab-microservice-application-auto-deploy/ 中分离的主题