kubernetes - 使用GKE处理流量突然增加(多个数量级)

标签 kubernetes google-kubernetes-engine scalability serverless

如果某个网站出售门禁系统,其中有很多人(〜50K)正在等待倒计时完成并进入页面,那么如何利用GKE以一种经济高效的方式解决这一问题?
这似乎是GKE存在的原因,解决方案可能是使用群集自动缩放器和HPA,GKE可以处理流量。然而,实际上却是另一回事,当自动缩放器尝试创建节点并为容器拉取图像时,可能要花费一定的时间(在某些情况下可能需要一到两个分钟)。在此期间,用户会看到5XX错误,这并不理想。
为了解决这个问题,我想到了带有暂停 pod 的过度配置。但是,考虑到服务器的大小通常很小(它们在正常的一天中只能处理100个请求),而在一秒钟内突然达到50K,这将是一个可行的解决方案吗?暂停的Pod似乎只能确保自动定标器不会删除无法正常工作的节点,因此在这种情况下,暂停的Pod必须始终占用50个节点,我假设运行时间仍然是可计费的(因为节点在那里没有工作任何内容)。
有什么可行的解决方案每天可以满足100个n1-standard-1的请求,又能在不到10秒的时间内扩展到约50k?

最佳答案

不及10秒。只有在没有服务器的情况下才能实现。
Pods自动缩放的最佳时间是20到30秒(取决于您的准备情况探针,负载平衡器探针,图像缓存等)。但是您仍然必须有一个节点池来适应该容量,这是同等的钱-您是对的。
Nodes + Pods自动缩放约为5分钟。
如果您没有服务器,请确保您知道(增加?)您的帐户限制。由于它的扩展速度如此之快,而且是按lambda运行计费的,因此很容易意外地将您的账单炸掉。因此,所有提供者都限制了并发函数执行的默认数量,例如默认情况下,AWS每个帐户有1000个。 https://aws.amazon.com/about-aws/whats-new/2017/05/aws-lambda-raises-default-concurrent-execution-limit/。可以通过支持来增加。
我记得有关AWS的帖子:https://aws.amazon.com/blogs/startups/from-0-to-100-k-in-seconds-instant-scale-with-aws-lambda/。不幸的是,没有看到类似google函数的文字,但是我确信它们具有非常相似的功能。

关于kubernetes - 使用GKE处理流量突然增加(多个数量级),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64122009/

相关文章:

kubernetes - 如何在 Kubernetes 上定义 localhost

Neo4j 分片方面

azure - 为什么 Windows Azure 无法扩展?

mongodb - 是否有 RDBMS 进行自动缩放、分片、重新平衡?

go - 在 kubernetes 中处理 kafka 客户端更新

kubernetes - 基于边缘和基于级别是什么意思?

kubernetes - 为什么我的 Kubernetes 服务有时只能在 EKS 上运行?

Spring Boot Kubernetes 服务发现

node.js - Node HTTP/2 设置托管证书的正确位置

google-kubernetes-engine - 2/2 在 kubectl get all -n cass-operator 的输出中意味着什么