我目前在GKE(k8s 1.2)上配置了一个Ingress来向我的应用程序的pod转发请求。我有一个请求可能需要很长时间(30秒),并且应用程序超时(504)。我观察到,当这样做时,我收到的响应不是我自己的504,而是在60秒后来自Google Loadbalancer的502。
我已经尝试了不同的状态码和持续时间,正好在30秒后,我开始接收这种奇怪的行为,无论状态码发出。
有人知道我该怎么解决吗?有没有办法重新配置这种行为?
我目前在GKE(k8s 1.2)上配置了一个Ingress来向我的应用程序的pod转发请求。我有一个请求可能需要很长时间(30秒),并且应用程序超时(504)。我观察到,当这样做时,我收到的响应不是我自己的504,而是在60秒后来自Google Loadbalancer的502。
我已经尝试了不同的状态码和持续时间,正好在30秒后,我开始接收这种奇怪的行为,无论状态码发出。
有人知道我该怎么解决吗?有没有办法重新配置这种行为?
2条答案
按热度按时间sczxawaw1#
从www.example.com开始1.11.3-gke.18,可以直接在kubernetes中配置超时设置。
首先添加一个backendConfig:
然后在Service中添加一个annotation以使用此backendConfig:
瞧,你的入口负载均衡器现在有一个40秒的超时,而不是默认的30秒。
参见https://cloud.google.com/kubernetes-engine/docs/how-to/configure-backend-service#creating_a_backendconfig
lyr7nygr2#
在GKE上创建入口时,默认设置是使用您提供的后端创建GLBC HTTP负载均衡器。默认情况下,它被配置为30秒的超时,以便您的应用程序处理请求。
如果你需要更长的超时时间,你必须在谷歌云控制台的HTTP Load balancer后端设置后手动编辑。