我目前在GKE (k8s 1.2)上配置了一个入口,用于将请求转发到我的应用程序的pods。我有一个请求,这可能需要很长时间(30秒),并且我的应用程序超时(504)。我观察到,当这样做时,我收到的响应不是我自己的504,而是60秒后来自谷歌负载均衡器的502。
我尝试过不同的状态代码和持续时间,在30秒之后,我开始收到这种奇怪的行为,而不管发出的状态代码是什么。
有谁知道我该怎么解决这个问题吗?有没有办法重新配置这种行为?
发布于 2016-03-24 21:10:33
在GKE上创建入口时,默认设置是使用您提供的后端创建GLBC HTTP负载均衡器。默认情况下,它被配置为30秒的超时,以便您的应用程序处理请求。
如果你需要更长的超时时间,你必须在谷歌云控制台的HTTP Load balancer后端进行设置后手动编辑。
发布于 2018-12-21 21:34:16
从1.11.3-gke.18开始,可以直接在kubernetes中配置超时设置。
首先添加一个backendConfig:
apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
name: my-bsc-backendconfig
spec:
timeoutSec: 40
然后在服务中添加注释以使用此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
而viola,你的入口负载均衡器现在的超时时间是40秒,而不是默认的30秒。
https://stackoverflow.com/questions/36200528
复制相似问题