在同一个Kubernetes节点上多次复制Node.js Kubernetes服务器pod有意义吗?

问题描述 投票:0回答:1

我们有一个处理请求的应用程序,它可能需要几分钟才能返回响应。把这个应用放在一个pod中,并在同一个节点上复制多次,这样我们就可以在一个新的线程上处理每个请求(考虑到nodejs是单线程的),这样做有意义吗?

node.js kubernetes google-kubernetes-engine scaling
1个回答
2
投票

这里的用例挺多的,不稳定。按照你说的,你的应用是一个单线程的应用,只有在前一个pod忙或者有锁的情况下,你才想增加pod,最简单的说,如果前一个pod忙的话,一个新的pod来一个新的请求。

Kubernetes是一个容器的Orchestrator,在kubernetes上部署一个单体应用,不仅会带来kubernetes能做的所有巨大的事情,还会带来很多Deployment和自动化问题的开销。

另外,当你从单体(=单线程)突破到面向服务的(微)架构时,好的地方是你可以为每个服务建立一个隔离的事件循环。因为每一个Node进程都会在一个容器内隔离运行!我建议你考虑一下你的架构。

我建议你考虑一下你的应用架构设计,将它们分解成多线程,然后重新审视kubernetes。

然而引用同样的 https:/www.dataversity.netuse-kubernetes-deploy-monolithic-apps# Linux shell就是Linux shell就是Linux shell。 你可以让它发挥作用,以下可以是一个前进的方向。

战略解决方案。 你可以声明一个 HPA您的部署的[水平吊舱自动扫描器]的标志为 --max-replicas=xx,然后你需要用 请求指标每当有服务请求时,部署应自动缩放,并同样降级。此外,一旦请求结束,你将不得不降低规模。你应该使用 v2beta2 apiVersion的HPA,因为它允许这种类型的指标。

另外,我认为你必须使用HPA的 v2beta2 apiVersion的HPA,因为你必须将请求数保持为单数,这样请求就不会产生 5XX 因为如果没有设置这样的度量,kubernetes服务将把请求发送到同一个pod。

© www.soinside.com 2019 - 2024. All rights reserved.