我目前在 GKE (k8s 1.2) 上配置了一个 Ingress,用于将请求转发到我的应用程序的 Pod。我有一个可能需要很长时间的请求(30秒)和我的应用程序超时(504)。我观察到,这样做时,我收到的响应不是我自己的 504,而是来自看起来像 Google Loadbalancer 之后的 50260秒。
我尝试过不同的状态代码和持续时间,就在 30 秒后,无论发出的状态代码如何,我都开始收到这种奇怪的行为。
有人知道我该如何解决这个问题吗?有没有办法重新配置这种行为?
从 1.11.3-gke.18 开始,可以直接在 kubernetes 中配置超时设置。
首先添加一个backendConfig:
# For GKE < 1.16.8-gke.3 use "cloud.google.com/v1beta1" below
apiVersion: cloud.google.com/v1
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:
# For GKE < 1.16.8-gke.3 use "beta.cloud.google.com/backend-config" below
cloud.google.com/backend-config: '{"default": "my-bsc-backendconfig"}'
spec:
type: NodePort
selector:
purpose: bsc-config-demo
ports:
- port: 80
protocol: TCP
targetPort: 8080
瞧,您的入口负载均衡器现在的超时时间为 40 秒,而不是默认的 30 秒。
See https://cloud.google.com/kubernetes-engine/docs/how-to/configure-backend-service#creating_a_backendconfig https://cloud.google.com/kubernetes-engine/docs/how-to/configure-backend-service#creating_a_backendconfig
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)