Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Kubernetes负载平衡器中响应503错误码_Kubernetes_Google Cloud Platform_Load Balancing - Fatal编程技术网

如何在Kubernetes负载平衡器中响应503错误码

如何在Kubernetes负载平衡器中响应503错误码,kubernetes,google-cloud-platform,load-balancing,Kubernetes,Google Cloud Platform,Load Balancing,我的Google Kubernetes引擎集群中有一个由Google云负载平衡器支持的入口。我设置了一个自动缩放器,可以根据CPU使用情况缩放部署副本的数量。假设我已将CPU阈值设置为50% 当出现突发请求时,CPU使用率将达到100%。autoscaler需要几分钟来实现高负载、创建更多的POD、在必要时创建新节点以及通过运行状况检查。在此扩展期间,由于超时,部分或大部分请求失败,出现502错误。如果服务器负载过重,我宁愿立即返回503错误代码,而不是在30秒超时后返回502错误代码 是否可以

我的Google Kubernetes引擎集群中有一个由Google云负载平衡器支持的入口。我设置了一个自动缩放器,可以根据CPU使用情况缩放部署副本的数量。假设我已将CPU阈值设置为50%

当出现突发请求时,CPU使用率将达到100%。autoscaler需要几分钟来实现高负载、创建更多的POD、在必要时创建新节点以及通过运行状况检查。在此扩展期间,由于超时,部分或大部分请求失败,出现502错误。如果服务器负载过重,我宁愿立即返回503错误代码,而不是在30秒超时后返回502错误代码

是否可以让负载平衡器将流量直接传输到CPU使用率最低的POD?如果没有一个POD的CPU使用率低于某个阈值(例如80%),是否可能返回503错误代码


处理大流量突发的标准做法是什么?在Kubernetes中,我应该如何着手解决这个问题?

您描述的第一个问题(服务503)称为“减载”。通常,应用程序有责任说:“哎呀,我超载了,503,慢下来。”。如果您将此责任转移给客户,则其反应可能太慢,无法为您提供任何合理的保护—其数据将始终处于落后状态。从系统可靠性的角度来看,最好将此逻辑保留在服务器应用程序中


第二个问题是CPU感知负载平衡。解决此问题的一种可能方法称为加权循环-它类似于常规循环,但更喜欢负载较少的节点。如果在Kubernetes中安装,则可以从中进行选择。其中之一是-它依赖于飞行中的请求数量,而不是直接依赖于CPU,但是如果所有请求的CPU成本都差不多,那么它可能是CPU负载的一个很好的代理。

还有一个可能的解决方案,就是使用断路器。您可以配置向您的服务发出的并发请求的数量,或者您也可以使用异常值检测,它将检测您的服务失败,并基于此改进您的用户体验