提问者:小点点

库伯内特斯-单集群或多集群


我正在将许多应用程序从AWSECS迁移到Azure AKS,这是我在库伯内特斯的第一个生产部署,我想确保它从一开始就正确设置。

正在移动的应用程序都在不同程度上使用资源,有些更占用内存,有些更占用CPU,并且都以不同的规模运行。

经过一些研究,我不确定哪个是运行单个大型集群并在它们自己的命名空间中运行它们的最佳方法,或者使用联邦为每个应用程序运行单个集群。

我应该注意到,我需要监控每个应用程序的资源使用情况以进行成本管理(除其他外),并且大多数应用程序之间需要通信。

我能够设置两种布局,我确信两者都可以工作,但是我不确定每种方法的利弊,我是否应该完全避免一种,或者我是否应该考虑其他选择?


共3个答案

匿名用户

因为你正处于你的kubernetes旅程的开始,我会为你的每个阶段选择单独的集群(或者至少单独的dev和prod)。你可以很容易地关闭你的集群(我在资源匮乏的情况下做了几次)。同样,如果没有正确设置那些网络策略,你可能会发现来自不同阶段/命名空间的服务(如测试和沙盒)会相互通信。或者应该部署dev以更改其他命名空间中的某些内容的管道。为什么要冒险让生产受到开发工作的影响?

即使你不必自己升级控制面,aks仍然有它的版本和标志,最好在转移到单独集群的生产环境之前对它们进行测试。

所以我最初的决定是设置一些硬性的界限:不同的集群。稍后,一旦您对aks和kubernetes有了更多的了解,您就可以回顾您的决定。

匿名用户

正如您所说,应用程序之间需要通信,我建议您使用一个集群。应用程序隔离可以通过将每个应用程序部署在单独的命名空间中来实现。您可以在命名空间级别收集指标,并可以在命名空间级别设置资源配额。这样您就可以在应用程序级别采取行动

匿名用户

单个集群(具有命名空间和RBAC)更易于设置和管理。单个k8s集群确实支持高负载。

如果您真的想要多个集群,您也可以尝试istio multi-集群(istio service mesh for多集群)。