【问题标题】:Does clustering in Node.js and auto-scaling web application using Kubernetes serve the same purpose?Node.js 中的集群和使用 Kubernetes 自动扩展 Web 应用程序是否具有相同的目的?
【发布时间】:2021-02-17 21:20:52
【问题描述】:

Node.js 引入了集群模块来扩展应用程序以优化性能。我们让 Kubernetes 做同样的事情。

如果两者的目的相同,我会感到困惑?我的假设是集群最多可以产生 8 个进程(如果有 4 个 CPU 核心,每个核心有 2 个线程),并且在 Kubernetes 中没有这样的限制。

【问题讨论】:

    标签: node.js kubernetes autoscaling


    【解决方案1】:

    Kubernetes 和 Node.js Cluster module 在不同级别上运行。

    Kubernetes 负责编排容器(在许多其他事物中)。从它的角度来看,有需要分配的资源,以及需要或使用特定数量资源的部署。

    Node.js 集群模块充当负载均衡器,分叉 N 次并在其拥有的各个进程之间传播请求,所有这些都在其环境(CPU、RAM、网络等)定义的限制内。

    在实践中,Kubernetes 有可能生成额外的 Node.js 容器(水平扩展)。另一方面,Node.js 只能在其环境中增长(垂直扩展)。你可以阅读这个here

    虽然从性能角度来看,这两种方法可能相对相似(您可以在两种情况下使用相同数量的内核); 在单台机器上垂直扩展的问题是你失去了 Kubernetes 提供的高可用性方面。另一方面,如果您决定在不同的机器上部署多个 Node.js 容器,那么您对其中一个容器故障的容忍度要高得多。

    【讨论】:

      猜你喜欢
      • 2019-05-26
      • 2019-07-26
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 2019-02-03
      相关资源
      最近更新 更多