我正在尝试使用Kubernetes和Jenkins实现CI / CD管道。在我的应用程序中,我有25个微服务。并需要为5个不同的客户端部署它。微服务代码是独一无二的。但每个客户的配置都不同。
所以我在这里配置具有5种不同配置文件/配置的Spring云配置服务器。当我构建Docker镜像时,我将通过在Docker文件中添加活动配置文件来定义哪个是活动配置服务器配置文件。因此,从25个微服务中,我构建了25 * 5个Docker镜像并进行部署。因此,我需要在Kubernetes集群中部署125个微服务。这些微服务是从我的Angular 2前端应用程序调用的。
在这里,当我考虑应用程序的性能和响应速度时,单个主机就足够了这个应用程序架构?或者我是否应该确实需要使用多主Kubernetes集群?我如何管理这个应用程序?
我是这些云和CI / CD管道架构任务的新手。所以我对工作流程的设计有些困惑。如果单个主人就够了,那么我可以继续当前。否则我需要实现多主Kubernetes HA集群。
答案 0 :(得分:2)
应用程序的性能和/或速度不取决于主节点的数量。它解决了高可用性问题,但没有解决性能问题。现在,你仍然应该考虑为你正在进行的这个实现至少有3个主人。如果主服务器出现故障,则您的群集无用。
在Kubernetes中,主服务器通过将所需的群集状态设置为当前状态来获取API调用并对其进行操作。但最终,节点(奴隶)做了繁重的工作。因此,您的性能问题主要取决于您的节点(如果不是唯一的话)。如果你有足够的内存和CPU,你应该没事。
答案 1 :(得分:1)
Multi master听起来对HA来说是一个好主意。
您还可以查看使用Helm,它允许您在每个安装的基础上配置微服务,这样您就不必每次都重新发布docker镜像来配置新环境。然后,您可以将helm配置注入一个ConfigMap
,将内容安装为application.yml
,以便Spring Boot自动加载设置