Kubernetes 如何在GKE上配置入口请求超时

Kubernetes 如何在GKE上配置入口请求超时,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我目前在GKE(K8S1.2)上配置了一个入口,用于将请求转发到我的应用程序的POD。我有一个请求,可能需要很长时间(30秒)和应用程序超时(504)。我观察到,在这样做时,我收到的响应不是我自己的504,而是在60秒后从看起来像Google Loadbalancer的502 我玩过不同的状态代码和持续时间,正好在30秒后,我开始接收这种奇怪的行为,而不管发出的状态代码是什么 有人知道我怎么解决这个问题吗?有没有办法重新配置这种行为 在GKE上创建入口时,默认设置是使用您提供的后端创建GLBC

我目前在GKE(K8S1.2)上配置了一个入口,用于将请求转发到我的应用程序的POD。我有一个请求,可能需要很长时间(30秒)和应用程序超时(504)。我观察到,在这样做时,我收到的响应不是我自己的504,而是在60秒后从看起来像Google Loadbalancer的502

我玩过不同的状态代码和持续时间,正好在30秒后,我开始接收这种奇怪的行为,而不管发出的状态代码是什么


有人知道我怎么解决这个问题吗?有没有办法重新配置这种行为

在GKE上创建入口时,默认设置是使用您提供的后端创建GLBC HTTP负载平衡器。默认情况下,应用程序处理请求的超时时间为30秒

如果你需要更长的超时时间,你必须在谷歌云控制台的后端安装后手动编辑


从1.11.3-gke.18开始,可以直接在kubernetes中配置超时设置

首先添加后端配置:

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: my-bsc-backendconfig
spec:
  timeoutSec: 40
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
然后在服务中添加注释以使用此backendConfig:

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: my-bsc-backendconfig
spec:
  timeoutSec: 40
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秒


请参见

是控制器尝试选择合理的默认值。超时>30秒不是要求的,所以我刚从测试版中删除了它。如果这是您经常需要的东西,我可以将其作为入口本身的注释推送出去。@PrashanthB我们确实需要配置超时,如果可以通过注释进行配置,我们将不胜感激。我不明白:
backendConfig
去了哪里?我的意思是,它是在一个单独的文件中吗?@pietro909它可以在自己的yaml文件中,也可以与其他资源一起在yaml文件中。看见