Kubernetes Nginx 许多小 pods 与每个节点一个 pod
Kubernetes Nginx many small pods vs one pod per node
我在一个有 3 个节点的 kubernetes 集群上 运行 nginx。
我想知道拥有例如 4 个 pods 并将其 cpu/mem 限制在大约 4 个左右是否有任何好处。节点容量的 1/4 vs 运行 每个节点 1 个 pod 限制 cpu/mem 以便 pod 可以使用整个节点的资源(为了简单起见,我们将 cubernet 服务排除在外)。
我的感觉是 pods 越少开销越小,每个节点 1 个 pod 应该是性能最好的?
提前致谢
你说的是水平缩放和垂直缩放的区别。关于垂直缩放,您可以根据需要增加应用程序的资源。否则,您将通过增加应用程序的副本数量来水平扩展。
执行其中一项取决于您的应用程序可能具有或不具有的功能。在 nginx 水平扩展的情况下,将拆分每个 pod 和每个节点的流量,这将为您最有可能的反向代理带来更好的吞吐量。
如果 Pod 超过 1 个,则具有一定的高可用性。你的 pod 会在某一时刻死掉,如果它在控制器后面(这是必须的),它会被重新创建,但你会有一小段停机时间。
现在,考虑到如果您部署多个应用程序副本,即使您给它 1/n 资源,也会有一个基础映像和依赖项将被复制。
举个例子,让我们想象一个 运行 在 Ubuntu 上运行并具有 5 个依赖项的应用程序:
如果您 运行 此应用的 1 个副本,则您正在部署 1 Ubuntu + 5 个依赖项 + 应用本身。
如果你是这个应用的运行4个副本,你就是运行ning 4Ubuntu+4*5个依赖+4倍的应用。
我的观点是,如果您的基础映像很大,并且需要大量依赖项,那么资源将不会线性增加。
在性能方面,我认为没有太大区别。您的一个节点将被严重轰炸,因为您的所有请求都将在那里结束,但如果您的节点可以处理它,应该没有问题。
我在一个有 3 个节点的 kubernetes 集群上 运行 nginx。
我想知道拥有例如 4 个 pods 并将其 cpu/mem 限制在大约 4 个左右是否有任何好处。节点容量的 1/4 vs 运行 每个节点 1 个 pod 限制 cpu/mem 以便 pod 可以使用整个节点的资源(为了简单起见,我们将 cubernet 服务排除在外)。
我的感觉是 pods 越少开销越小,每个节点 1 个 pod 应该是性能最好的?
提前致谢
你说的是水平缩放和垂直缩放的区别。关于垂直缩放,您可以根据需要增加应用程序的资源。否则,您将通过增加应用程序的副本数量来水平扩展。
执行其中一项取决于您的应用程序可能具有或不具有的功能。在 nginx 水平扩展的情况下,将拆分每个 pod 和每个节点的流量,这将为您最有可能的反向代理带来更好的吞吐量。
如果 Pod 超过 1 个,则具有一定的高可用性。你的 pod 会在某一时刻死掉,如果它在控制器后面(这是必须的),它会被重新创建,但你会有一小段停机时间。
现在,考虑到如果您部署多个应用程序副本,即使您给它 1/n 资源,也会有一个基础映像和依赖项将被复制。
举个例子,让我们想象一个 运行 在 Ubuntu 上运行并具有 5 个依赖项的应用程序:
如果您 运行 此应用的 1 个副本,则您正在部署 1 Ubuntu + 5 个依赖项 + 应用本身。
如果你是这个应用的运行4个副本,你就是运行ning 4Ubuntu+4*5个依赖+4倍的应用。
我的观点是,如果您的基础映像很大,并且需要大量依赖项,那么资源将不会线性增加。
在性能方面,我认为没有太大区别。您的一个节点将被严重轰炸,因为您的所有请求都将在那里结束,但如果您的节点可以处理它,应该没有问题。