Kubernetes Nginx很多小型Pod与每个节点一个Pod

时间:2019-10-13 11:05:04

标签: nginx kubernetes limit

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

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

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

预先感谢

2 个答案:

答案 0 :(得分:1)

如果Pod超过1个,则具有一定的高可用性。您的Pod会在某个时间点死亡,并且如果它位于控制器的后面(必须如此),则会重新创建它,但是停机时间会很小。

现在,请考虑到,如果您部署了一个以上的应用程序副本,即使您为其提供了1 / n的资源,也将要复制一个基本映像和依赖项。

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

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

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

我的意思是,如果您的基本映像很大,并且需要大量的依赖关系,那不是资源的线性增加。

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

答案 1 :(得分:0)

您所指的是水平和垂直缩放之间的差异。关于垂直扩展,您将视需要增加应用程序的资源。否则,您可以通过增加应用程序副本的数量来水平扩展。

执行一项或多项操作取决于您的应用程序可能具有或不具有的功能。在nginx水平扩展的情况下,将划分每个pod和每个节点的流量,这将为最可能的反向代理带来更好的吞吐量。