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

笔者最近在负责公司研发中台的建设,以提升公司整体研发流程的效率,其中很重要的一部分就是解决从代码到运行中服务的部署效率问题。由于公司项目众多,以前都是各个项目各自为政,每个项目都有自己的开发、测试环境,资源利用率极低,浪费严重。并且基本为传统手动部署方式,部署效率低且易出错。经过调研,笔者最终选择了 Kubernetes + GitLab 的组合。无论是开发、测试还是生产环境,各个项目都共享同一个 Kubernetes 集群,复用底层计算和存储资源。长期没有开发任务的项目可从开发和测试环境里下线,以节省资源,需要的时候可快速恢复上线。对于开发、测试环境,每个项目每天都要部署多次,如果项目采用微服务架构,那么部署次数还会随着微服务数量翻倍,势必需要一种自动化的部署方式。通过使用 GitLab CI/CD,能够做到开发人员提交代码后就自动触发 GitLab 流水线(Pipeline)运行,在流水线里可完成构建、测试、打包和部署等工作。


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