首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js在Kubernetes上的扩展

Node.js在Kubernetes上的扩展
EN

Stack Overflow用户
提问于 2018-01-07 19:55:46
回答 1查看 4.3K关注 0票数 7

我使用Docker在node.js上构建了一个应用程序,我不知道如何在Kubernetes集群上扩展它,以便最大限度地利用集群硬件。

从性能角度看,以下哪一个更好:

将我的节点应用程序分组,并根据需要运行尽可能多的容器。

只运行尽可能多的容器而不进行集群?

当我说聚类时,我指的是这个https://nodejs.org/api/cluster.html

我的应用程序是一个由mongoDB支持的简单的CRUD。我们估计它将有1000个并发用户。我们的集群有3个节点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-08 21:02:04

NodeJS簇机制对于允许NodeJS更有效地使用大于单个核心的功能非常有用,因此取决于您的代码,它可能会使您受益,但它在很大程度上取决于您的代码和各种依赖关系以及它们在集群中的工作情况(或不工作)。

通常的做法是,如果您可以将容器分解为可以在kubernetes中作为pods运行的并行工作,那么我建议您使用以下步骤来查看什么对您有用:

  1. 建立一个包含您的代码的单荚,并对其运行一个负载测试。使用Kubernetes从cAdvisor获得的数据来描述您的荚喜欢拥有多少资源(cpu和内存)。
  2. 根据上面看到的设置cpu和内存的资源限制。
  3. 运行一个负载测试,以验证您的单荚在规模方面处理的内容。

从这里开始,您可以使用Kubernetes横向扩展这个基准来验证您想要达到的1000个用户并发基线。关于这个过程有一个很好的讨论,从2017年库贝松称为负载测试Kubernetes:如何优化生产中的集群资源分配

一旦有了基线,就可以利用代码中的集群运行一个原型,然后与非集群版本进行比较。如果您这样做,我会再次检查您设置的任何限制是否为CPU >1核心,或者在NodeJS运行时之外进行自我限制,以访问多个核心,这将违背使用集群的目的。

根据您在代码中所做的工作,可能需要进行大量的重新工作才能启用集群,因为它希望利用自己的工作人员概念,并且不清楚您使用的是哪些框架,以及它们是否能合理地适应这种结构。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48140983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档