首页 > 解决方案 > Kubernetes Nginx 许多小 pod 与每个节点一个 pod

问题描述

我在具有 3 个节点的 kubernetes 集群上运行 nginx。

我想知道拥有例如 4 个 pod 并将它们的 cpu/mem 限制为大约是否有任何好处。1/4 的节点容量与每个节点运行 1 个 pod 限制 cpu/mem 以便 pod 可以使用整个节点的资源(为简单起见,我们将 cubernet 服务排除在外)。

我的感觉是 pod 越少开销越小,每个节点 1 个 pod 应该是性能最好的?

提前致谢

标签: nginxkuberneteslimit

解决方案


使用超过 1 个 Pod,您就有了一定的高可用性。您的 pod 将在某一时刻死亡,如果它位于控制器后面(必须如此),它将被重新创建,但您将有一小段停机时间。

现在,考虑到如果您部署的应用程序的副本不止一个,即使您给它 1/n 资源,也会有一个基础映像和依赖项将被复制。

作为一个例子,让我们想象一个在 Ubuntu 上运行的应用程序,它有 5 个依赖项:

  • 如果您运行此应用程序的 1 个副本,您将部署 1 个 Ubuntu + 5 个依赖项 + 应用程序本身。

  • 如果您运行此应用程序的 4 个副本,则您正在运行 4 个 Ubuntu + 4*5 依赖项 + 4 次应用程序。

我的观点是,如果你的基础镜像很大,并且你需要大量依赖,这将不是资源的线性增长。

在性能方面,我认为没有太大区别。您的一个节点将被严重轰炸,因为您的所有请求都将在那里结束,但如果您的节点可以处理它,那么应该没有问题。


推荐阅读