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