使用 GKE 处理突然增加的流量(多个数量级)
Handle sudden increase in traffic size (multiple orders of magnitude) with GKE
如果一个网站有很多人(约 5 万人)正在等待倒计时结束并进入页面的开门撞车促销活动,那么如何使用 GKE 以经济高效的方式解决这个问题?
这似乎是 GKE 存在的原因,解决方案可能是使用集群自动缩放器和 HPA,GKE 可以处理流量。然而在实践中这是一个不同的故事,当自动缩放器尝试创建节点并为容器拉取图像时,它可能需要一定的时间(在某些情况下可能长达一两分钟)。在此期间,用户会看到 5XX 错误,这并不理想。
好吧,为了解决这个问题,我想到了暂停 pods 的过度配置。但是,考虑到服务器通常非常小(正常情况下它们应该只能处理 100 个请求)并且突然在一秒钟内处理 50K,这将如何成为一个可行的解决方案? Paused pods 似乎只确保自动缩放器不会删除不工作的节点,所以在这种情况下,50 个节点必须始终被 paused pods 占用,我假设 运行在 GKE 中,小时数仍需计费(因为节点在那里只是什么都不做)。
每天用 n1-standard-1 处理 100 个请求,同时又能在不到 10 秒内扩展到 ~50k 的可行解决方案是什么?
还不到 10 秒。仅当您采用无服务器模式时才能实现。
Pods 自动缩放最好是 20-30 秒(取决于您的就绪探测器、负载均衡器探测器、图像缓存等)。但是您仍然必须有一个节点池来适应该容量,这是相同的钱 - 你是对的。
Nodes+Pods 自动缩放大约需要 5 分钟。
如果您使用无服务器,请确保您知道(增加?)您的帐户限制。因为它的扩展速度如此之快,并且按 lambda-run 计费 - 很容易不小心炸毁你的账单。因此,所有提供者都限制并发函数执行的默认数量,例如默认情况下,AWS 每个账户有 1000 个。 https://aws.amazon.com/about-aws/whats-new/2017/05/aws-lambda-raises-default-concurrent-execution-limit/。这可以通过支持增加。
我记得这个 post 用于 AWS:https://aws.amazon.com/blogs/startups/from-0-to-100-k-in-seconds-instant-scale-with-aws-lambda/。不幸的是,没有看到 google 函数的类似写入,但我确信它们具有非常相似的功能。
如果一个网站有很多人(约 5 万人)正在等待倒计时结束并进入页面的开门撞车促销活动,那么如何使用 GKE 以经济高效的方式解决这个问题?
这似乎是 GKE 存在的原因,解决方案可能是使用集群自动缩放器和 HPA,GKE 可以处理流量。然而在实践中这是一个不同的故事,当自动缩放器尝试创建节点并为容器拉取图像时,它可能需要一定的时间(在某些情况下可能长达一两分钟)。在此期间,用户会看到 5XX 错误,这并不理想。
好吧,为了解决这个问题,我想到了暂停 pods 的过度配置。但是,考虑到服务器通常非常小(正常情况下它们应该只能处理 100 个请求)并且突然在一秒钟内处理 50K,这将如何成为一个可行的解决方案? Paused pods 似乎只确保自动缩放器不会删除不工作的节点,所以在这种情况下,50 个节点必须始终被 paused pods 占用,我假设 运行在 GKE 中,小时数仍需计费(因为节点在那里只是什么都不做)。
每天用 n1-standard-1 处理 100 个请求,同时又能在不到 10 秒内扩展到 ~50k 的可行解决方案是什么?
还不到 10 秒。仅当您采用无服务器模式时才能实现。
Pods 自动缩放最好是 20-30 秒(取决于您的就绪探测器、负载均衡器探测器、图像缓存等)。但是您仍然必须有一个节点池来适应该容量,这是相同的钱 - 你是对的。
Nodes+Pods 自动缩放大约需要 5 分钟。
如果您使用无服务器,请确保您知道(增加?)您的帐户限制。因为它的扩展速度如此之快,并且按 lambda-run 计费 - 很容易不小心炸毁你的账单。因此,所有提供者都限制并发函数执行的默认数量,例如默认情况下,AWS 每个账户有 1000 个。 https://aws.amazon.com/about-aws/whats-new/2017/05/aws-lambda-raises-default-concurrent-execution-limit/。这可以通过支持增加。
我记得这个 post 用于 AWS:https://aws.amazon.com/blogs/startups/from-0-to-100-k-in-seconds-instant-scale-with-aws-lambda/。不幸的是,没有看到 google 函数的类似写入,但我确信它们具有非常相似的功能。