使用GKE处理流量大小的突然增加(多个数量级)



如果一个网站有一个开门迎客的促销活动,很多人(约50万人(都在等待倒计时结束并进入页面,那么GKE如何以经济高效的方式解决这个问题?

这似乎就是GKE存在的原因,解决方案可能是通过集群自动缩放器和HPA,GKE可以处理流量。然而,在实践中,情况就不同了,当自动缩放器试图创建节点并提取容器的图像时,可能需要一定的时间(在某些情况下可能需要一两分钟(。在此期间,用户会看到5XX错误,这并不理想。

为了解决这个问题,我想到了使用暂停的pod进行过度供应。然而,考虑到服务器的大小通常很小(正常情况下一天只能处理100个请求(,而且一秒钟内突然有50万个请求,这怎么可能是一个可行的解决方案?暂停的pod似乎只能确保自动缩放器不会删除不工作的节点,因此在这种情况下,50个节点必须始终被暂停的pod占用,我假设GKE中的运行时间仍然是可计费的(因为节点在那里什么都不做(。

有什么可行的解决方案可以每天用n1-标准-1服务100个请求,但也能在不到10秒内扩展到约50k?

没有10秒那么快。只有在没有服务器的情况下才能访问。

Pods自动缩放的最佳时间为20-30秒(取决于您的就绪探测器、负载均衡器探测器、图像缓存等(。但你仍然需要有一个节点池来适应这种容量,这是同样的钱——你是对的。

节点+吊舱的自动缩放大约需要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/.不幸的是,没有看到类似的谷歌功能写入,但我相信他们有非常相似的功能。

最新更新