Kubernetes 如何在GKE上设置服务负载平衡器请求超时
我在GKE上有一个LoadBalancer类型的服务,它指向运行nginx的GKE部署。我的nginx将所有超时设置为10分钟,但在收到响应之前必须等待处理的HTTP/HTTPS请求在30秒后被中断,并出现500个错误。我的设置:Kubernetes 如何在GKE上设置服务负载平衡器请求超时,kubernetes,google-cloud-platform,google-kubernetes-engine,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,我在GKE上有一个LoadBalancer类型的服务,它指向运行nginx的GKE部署。我的nginx将所有超时设置为10分钟,但在收到响应之前必须等待处理的HTTP/HTTPS请求在30秒后被中断,并出现500个错误。我的设置: http { proxy_read_timeout 600s; proxy_connect_timeout 600s; keepalive_timeout 600s; send_timeout 600s; } 显然,在LoadBala
http {
proxy_read_timeout 600s;
proxy_connect_timeout 600s;
keepalive_timeout 600s;
send_timeout 600s;
}
显然,在LoadBalancer的某个地方有30秒的默认设置
在浏览了大量文档之后,我在Google上只找到了一个步骤,它概述了如何在带有超时的后端服务负载平衡器上设置入口,但找不到如何在GKE使用的类型为LoadBalancer的服务上实现这一点。我还查看了1.7+版本的所有Kubernetes文档(我们使用的是1.8.7-gke.1),没有任何关于设置超时的内容。是否有可以添加到yaml文件的设置来执行此操作
如果有帮助的话,我为AWS找到了以下内容,这似乎是我在GKE上需要的:
annotations:
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
到目前为止,您无法从YAML文件执行此操作。 目前有一个开放的功能请求,我建议您订阅并遵循:
从2021年4月起,您可以通过GKE/GCE配置实现这一点。这是说明书。 基本上,您可以创建一个类似以下内容的
BackendConfig
资源:
apiVersion:cloud.google.com/v1
种类:BackendConfig
元数据:
名称:我的后端配置
规格:
超时秒:40
连接训练:
排水时间:60秒
(kubectl apply-f my backendconfig.yaml
)
然后使用注释将其连接到您的GKE服务资源:
apiVersion:v1
种类:服务
元数据:
姓名:我的服务
标签:
目的:bsc配置演示
注释:
cloud.google.com/backend-config:'{“端口”:{“80”:“我的后端配置”}
cloud.google.com/neg:“{“入口”:true}”
规格:
类型:集群
选择器:
目的:bsc配置演示
端口:
-港口:80
协议:TCP
目标港:8080
(kubectl apply-f my service.yaml
)
如果愿意,BackendConfig资源(和服务)可以放置在yaml中具有元数据名称空间指定的名称空间中
元数据:
名称空间:我的名称空间
Hi,检查答案的更新