Kubernetes 共享集群

Kubernetes 共享集群

我们正在规划新的 Kubernetes 集群基础设施,我有一些问题。目前,我们有一个更大的集群,其中有多个环境(开发、准备、生产)和多个团队正在工作。一开始,它只是一个“POC”,一个演示 - 但你们知道:没有什么比临时解决方案更持久。在这个设置中,我们有一些一般性问题,在我们的目标架构上,我们计划解决其中一些问题。

我希望你们中的一些人可以分享知识/经验。

首先:每个应用程序一个集群并不是解决方案。应用程序真的很小,每个团队大约有 3-5 个应用程序,每个环境的所有节点需要大约 6-20GB 的内存。因此,单个集群并不是一个真正的选择。

我们计划每个环境一个集群:开发、准备 (qa)、生产,以及可能用于操作的演示集群。一切都是并将使用 terraform + ansible (kubespray) 实现自动化和 IaC。当然,每个团队/应用程序范围都会获得一个命名空间。

我们的疑问/问题:

监控 通常我们使用 Prometheus 和 Grafana 来监控 pod/集群资源使用情况。新的还应包含中央日志记录(我们目前正在尝试解决方案)。这对于基础设施团队来说很好,但基础设施团队不想在应用程序级别进行监控。

有没有可行的方法为应用团队提供监控?例如:您(应用团队)可以根据需要设置日志、CPU、RAM 使用情况的警报。“您只需要推出这个 Helm Chart”。在一个美好的世界中,我会为每个团队(每个命名空间)提供自己的监控堆栈,这样我们也可以限制存储和 RAM+CPU 使用情况,并且每个团队都能够使用“有序”资源(因此,如果团队有大量日志/监控需求,则需要“订购”更多资源”)。同样基于这种方法,他们可以选择最适合的软件。

另一个解决方案可能是基础设施团队设置一个中央监控/日志解决方案并限制访问。App-Team A 不应能够从 App-Team B 访问日志/CPU 使用情况/RAM 使用情况/磁盘使用情况。但我看不出有什么方法可以真正做到这一点。

基础设施团队可以自行安装该堆栈 - 但我看到的是:当我在特定命名空间上安装监控堆栈时,该堆栈需要集群的管理员访问权限。我认为这不太好。

我错了吗?

贮存 我们有一个 gluster 存储并想保留它。如果团队需要磁盘,我们会添加一个具有特定大小和 storageClassName(如“team1-disk5”)的“glusterfs 持久卷”。基于此,团队可以创建 PVC 并使用该存储。过去工作正常。

这是一个好的解决方案吗?还有其他想法吗?

我想目前就这些了。只有这两个问题。有什么想法可以引导我朝着正确的方向前进吗?

谢谢!

相关内容