如何在GKE上配置Ingress请求超时
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在GKE上配置Ingress请求超时相关的知识,希望对你有一定的参考价值。
我目前在GKE(k8s 1.2)上配置了Ingress,以便将请求转发到我的应用程序的pod。我有一个请求,可能需要很长时间(30秒)和我的应用程序超时(504)。我观察到,当我这样做时,我收到的响应不是我自己的504,而是60秒后看起来像Google Loadbalancer的502。
我玩了不同的状态代码和持续时间,正好在30秒后我开始接收这种奇怪的行为,无论发出的状态代码如何。
任何人都知道如何解决这个问题?有没有办法重新配置这种行为?
在GKE上创建入口时,默认设置是使用您提供的后端创建GLBC HTTP负载均衡器。默认情况下,应用程序处理请求的超时时间为30秒。
如果您需要更长的超时,则必须在google云控制台中的HTTP Load balancer后端设置后手动编辑。
从1.11.3-gke.18开始,可以直接在kubernetes中配置超时设置。
首先添加一个backendConfig:
apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
name: my-bsc-backendconfig
spec:
timeoutSec: 40
然后在Service中添加注释以使用此backendConfig:
apiVersion: v1
kind: Service
metadata:
name: my-bsc-service
labels:
purpose: bsc-config-demo
annotations:
beta.cloud.google.com/backend-config: '{"ports": {"80":"my-bsc-backendconfig"}}'
spec:
type: NodePort
selector:
purpose: bsc-config-demo
ports:
- port: 80
protocol: TCP
targetPort: 8080
而中提琴,您的入口负载均衡器现在具有40秒的超时而不是默认的30秒。
以上是关于如何在GKE上配置Ingress请求超时的主要内容,如果未能解决你的问题,请参考以下文章
如何在 GKE 上为 Kubernetes Ingress 强制 SSL
如何将 GKE Ingress 与 Nginx Ingress 一起使用?
限制 Google HTTPS 使用的 SSL 协议)在 GKE 中使用 Kubernetes Ingress 的负载均衡器
GKE 上的 GRPC 负载平衡(在 L7、HTTP/2 + TLS 上)