在项目微服务以来,我们要将项目进行 Kubernetes 转移,在这个过程中我们都需要手动构建、推送 Docker 镜像,然后部署到 Kubernets 平台进行测试,这无疑对开发和运维人员都大大增加了复杂性,导致效率低下,在现在这个微服务快速迭代模式下,需要有一套组件完帮我们完成持续集成与部署整个流程,避免人工手动来创建于部署应用。那么 Jnekins 无疑,来写这么一套流程是非常方便的,只要在其中引入部分组件,就能和 Kubernetes 快速配合起来,完成项目 CD\\CD 过程,这里简单记录下,如何在 Jenkins 中实现项目 CD\\CD 流水线。
Kubernetes 部署 SpringCloud 网关 Zuul 1.x + Eureka 动态路由
现在很多 SpringCloud 组件都在往 Kubernetes 中迁移,SpringBoot Admin 作为我们微服务监控经常使用的组件,也要将它迁移到 Kubernetes 环境下。虽然现在 Netflix 的组件以及不再维护,但是它的很多组件大多数都是经历过生产环境下验证过得,尤其是网关 Zuul。现在很多公司部署网关还是依旧优先选择使用 Zuul 1.x 版本部署。Zuul 2.x 版本和现在 SpringCloud 新推出的 Gateway 使用 Netty 作为底层,提供异步接口,不过这也间接增加了代码复杂性和缺少生产环境验证,所以现在生产环境还是推荐使用 Zuul 1.x 版本,这里记录在 Kubernetes 下部署 Zuul 1.x 的构建及部署过程。
Kubernetes 部署 SpringBoot Admin + Eureka 监控微服务
现在很多 SpringCloud 组件都在往 Kubernetes 中迁移,SpringBoot Admin 作为我们微服务监控经常使用的组件,也要将它迁移到 Kuberntes 环境下。在之前写过 SpringBoot Admin 与 SpringCloud Kubernetes 组件结合,通过 API 方式发现服务列表,让 Admin 服务能服务发现。但是现在还是很多实际生产环境中,还是将 Eureka 注册中心部署到 Kubernetes 环境下作为注册中心,然后将全部服务注册到 Eureka,通过注册中心将服务间关系进行关联,所以考虑到这种情况,所以这里将使用 Admin + Eureka 方式来部署。
