express(NodeJS)有多少个副本?
How many replicas for express (NodeJS)?
因此,在我使用 kubernetes 之前,我用于 运行 VM 上多个 express 实例的一般规则是每个 cpu 一个。这似乎提供了最好的性能。
对于 kubernetes,每个节点有一个副本 cpu 是否明智?还是我应该让 horizontalpodautoscaler 决定?集群有一个节点自动缩放器。
感谢您的任何建议!
问得好!
您需要考虑 4 件事:
运行 使用 Deployment 的 Pod,因此您可以启用复制、滚动更新等
将 resources.limits
设置为您的容器定义。这对于 autoscaling 是强制性的,因为 HPA 正在监控使用百分比,如果没有 NO limit,就会有 NEVER percentage,然后 HPA永远不会达到 阈值 .
设置resources.requests
。这将帮助调度程序估计应用程序需要多少,因此将根据其当前容量将其分配给合适的节点。
设置 HPA 阈值:HPA 触发横向扩展或缩减时的使用百分比(CPU,内存)。
对于您的情况,您说的是“每 cpu 一个”。那么,它应该是:
containers:
- name: express
image: myapp-node
#.....
resources:
requests:
memory: "256Mi"
cpu: "750m"
limits:
memory: "512Mi"
cpu: "1000m" # <-- match what you have in the legacy deployment
你可能想知道为什么我把内存放在 limits/requests 而没有你这边的任何输入?
答案是我随便放的。您的任务是监控您的应用程序,并相应地调整所有这些值。
因此,在我使用 kubernetes 之前,我用于 运行 VM 上多个 express 实例的一般规则是每个 cpu 一个。这似乎提供了最好的性能。 对于 kubernetes,每个节点有一个副本 cpu 是否明智?还是我应该让 horizontalpodautoscaler 决定?集群有一个节点自动缩放器。 感谢您的任何建议!
问得好!
您需要考虑 4 件事:
运行 使用 Deployment 的 Pod,因此您可以启用复制、滚动更新等
将
resources.limits
设置为您的容器定义。这对于 autoscaling 是强制性的,因为 HPA 正在监控使用百分比,如果没有 NO limit,就会有 NEVER percentage,然后 HPA永远不会达到 阈值 .设置
resources.requests
。这将帮助调度程序估计应用程序需要多少,因此将根据其当前容量将其分配给合适的节点。设置 HPA 阈值:HPA 触发横向扩展或缩减时的使用百分比(CPU,内存)。
对于您的情况,您说的是“每 cpu 一个”。那么,它应该是:
containers:
- name: express
image: myapp-node
#.....
resources:
requests:
memory: "256Mi"
cpu: "750m"
limits:
memory: "512Mi"
cpu: "1000m" # <-- match what you have in the legacy deployment
你可能想知道为什么我把内存放在 limits/requests 而没有你这边的任何输入? 答案是我随便放的。您的任务是监控您的应用程序,并相应地调整所有这些值。