express(NodeJS)有多少个副本?

How many replicas for express (NodeJS)?

因此,在我使用 kubernetes 之前,我用于 运行 VM 上多个 express 实例的一般规则是每个 cpu 一个。这似乎提供了最好的性能。 对于 kubernetes,每个节点有一个副本 cpu 是否明智?还是我应该让 horizo​​ntalpodautoscaler 决定?集群有一个节点自动缩放器。 感谢您的任何建议!

问得好!

您需要考虑 4 件事:

  1. 运行 使用 Deployment 的 Pod,因此您可以启用复制、滚动更新等

  2. resources.limits 设置为您的容器定义。这对于 autoscaling 是强制性的,因为 HPA 正在监控使用百分比,如果没有 NO limit,就会有 NEVER percentage,然后 HPA永远不会达到 阈值 .

  3. 设置resources.requests。这将帮助调度程序估计应用程序需要多少,因此将根据其当前容量将其分配给合适的节点。

  4. 设置 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 而没有你这边的任何输入? 答案是我随便放的。您的任务是监控您的应用程序,并相应地调整所有这些值。