考虑运行1 Pod的部署,其中包含没有指定资源限制的NodeJS容器 . 我的Kubernetes群集由3个节点组成,并运行不同的应用程序,运行除NodeJS之外的其他应用程序的2个节点正在经历稳定的高负载(即CPU利用率> 80%),认为将新Pod调度到这些节点无效 .
| 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应用程序遇到高负载的情况下,如果我扩展部署,那么在节点3上运行额外Pod会不会有任何好处,因为没有定义资源限制?
| Pod:NodeJS |
| Pod:NodeJS |
|---------------|
| CPU 60% |
| Mem:70% |
Node 3
1 回答
如您所知,Pods是kubernetes中的一个短暂实体 . 他们在不事先通知的情况下被杀在您的示例中,您有一个用于nodeJS应用程序的pod,因此如果您因任何原因重新安排了pod,则最终会导致服务停机 . 出于这个原因,恕我直言,你可以放大你的pod,以便让它的多个实例同时运行 . 显然,如果所有实例都在同一节点上运行,那么该节点中的故障仍会导致停机,但这应该比pod重新安排的频率低得多 .