kubernetes google-container-engine

kubernetes - Cómo configurar los tiempos de espera de solicitud de ingreso en GKE



google-container-engine (2)

A partir de 1.11.3-gke.18, es posible configurar los ajustes de tiempo de espera directamente en kubernetes.

Primero agregue un backendConfig:

apiVersion: cloud.google.com/v1beta1 kind: BackendConfig metadata: name: my-bsc-backendconfig spec: timeoutSec: 40

Luego agregue una anotación en el Servicio para usar este 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

Y viola, su equilibrador de carga de ingreso ahora tiene un tiempo de espera de 40 segundos en lugar de los 30 segundos predeterminados.

Consulte https://cloud.google.com/kubernetes-engine/docs/how-to/configure-backend-service#creating_a_backendconfig

Actualmente tengo un Ingress configurado en GKE (k8s 1.2) para reenviar solicitudes a los pods de mi aplicación. Tengo una solicitud que puede tardar mucho tiempo ( 30 segundos) y tiempo de espera de mi aplicación (504). Observo que, al hacerlo, la respuesta que recibí no es mi 504, sino un 502 de lo que parece ser el Google Loadbalancer después de 60 segundos.

He jugado con diferentes códigos de estado y duraciones, exactamente después de 30 segundos, empiezo a recibir este extraño comportamiento independientemente del código de estado emitido.

¿Alguien tiene una pista de cómo puedo arreglar esto? ¿Hay alguna manera de reconfigurar este comportamiento?


Al crear una entrada en GKE, la configuración predeterminada es que se creará un equilibrador de carga HTTP GLBC con los backends que proporcionó. De forma predeterminada, se configura en un tiempo de espera de 30 segundos para que su aplicación maneje la solicitud.

Si necesita un tiempo de espera más largo, debe editarlo manualmente después de la instalación en los backends de su balanceador de carga HTTP en la consola de nube de Google.