Kubernetes 在Kuberenets的同一节点上扩展部署的POD有什么好处
考虑一个运行1个Pod的部署,其中包含一个没有指定资源限制的NodeJS容器。我的Kubernetes群集由3个节点组成,正在运行不同的应用程序,其中2个正在运行NodeJ以外的其他应用程序的节点正在经历稳定的高负载,即CPU利用率>80%,认为将新POD调度到这些节点是无效的Kubernetes 在Kuberenets的同一节点上扩展部署的POD有什么好处,kubernetes,Kubernetes,考虑一个运行1个Pod的部署,其中包含一个没有指定资源限制的NodeJS容器。我的Kubernetes群集由3个节点组成,正在运行不同的应用程序,其中2个正在运行NodeJ以外的其他应用程序的节点正在经历稳定的高负载,即CPU利用率>80%,认为将新POD调度到这些节点是无效的 | Pod:A | | Pod:A | | Pod:NodeJS | | Pod:B | | Pod:B | | | |--------| |--------|
| Pod:A | | Pod:A | | Pod:NodeJS |
| Pod:B | | Pod:B | | |
|--------| |--------| |---------------|
|CPU 85% | |CPU 85% | | CPU 60% |
|Mem:80% | |Mem:85% | | Mem:70% |
Node 1 Node 2 Node 3
在NodeJS应用程序经历高负载的情况下,如果考虑到没有定义资源限制,我扩展部署,在Node 3上也会运行一个额外的Pod,会有什么好处
| Pod:NodeJS |
| Pod:NodeJS |
|---------------|
| CPU 60% |
| Mem:70% |
Node 3
正如你们所知,豆荚在库伯内特斯是一个短暂的实体。他们在没有事先通知的情况下被杀。 在您的示例中,您的nodeJS应用程序只有一个pod,因此,如果您的pod由于任何原因被重新调度,您的服务最终都会停机。 出于这个原因,为了让多个pod实例同时运行,IMHO应该扩大pod的规模。
显然,如果所有实例都在同一个节点上运行,那么该节点中的故障仍然会导致停机,但这种情况发生的频率应该比pod重新调度的频率低得多。这是我没有考虑过的一个很好的问题。事实上,我已经做了一些评估,以便更好地理解Kuberenets的行为。在这种情况下,在分享结果之前,我还需要做更多的测试。然而,简言之,与在不同节点上调度相同部署的两个NodeJS吊舱相比,在单个节点上放置两个NodeJS吊舱并不能显著提高性能响应时间。似乎对于网络密集型应用程序,每个节点都有一个上限。