利用 Kubernetes 特性简化系统架构
1. 简介
当前的微服务架构中包含多个支持服务,如边缘服务器、配置服务器、授权服务器和分布式跟踪服务等。为了进一步简化微服务架构,减少需要部署的支持服务数量,可以利用 Kubernetes 的内置功能来处理相应的设计模式。具体来说,将使用 Kubernetes 的 ConfigMaps 和 Secrets 替换 Spring Cloud Config Server,使用 Kubernetes 的 Ingress 对象替换 Spring Cloud Gateway。同时,还将学习如何使用 cert-manager 自动化证书的创建、配置和轮换过程。最后,将使用 Docker Compose 部署和测试微服务架构,以确保微服务的源代码不依赖于 Kubernetes 平台。
2. 技术要求
代码示例来自 $BOOK_HOME/Chapter17
。若要查看本章对源代码所做的更改,可使用喜欢的 diff 工具比较 $BOOK_HOME/Chapter16
和 $BOOK_HOME/Chapter17
两个文件夹。
3. 替换 Spring Cloud Config Server
Spring Cloud Config Server 虽然提供了集中管理配置、版本控制和加密敏感信息等功能,但会消耗大量内存,并且在启动时会增加显著的开销。使用 Kubernetes 的 ConfigMaps 和 Secrets 可以消除这些问题,使自动化集成测试运行更快,同时简化微服务架构。