Подтвердить что ты не робот

Как настроить тайм-ауты запроса Ingress на GKE

В настоящее время у меня есть Ingress, настроенный на GKE (k8s 1.2) для пересылки запросов к моим приложениям. У меня есть запрос, который может занять много времени ( 30 секунд) и тайм-аут из моей заявки (504). Я замечаю, что при этом ответ, который я получаю, не является моим собственным 504, а 502 из того, что выглядит как Google Loadbalancer после 60 секунд.

Я играл с разными кодами состояния и продолжительностью, ровно через 30 секунд я начал получать это странное поведение, независимо от того, какой код состояния испущен.

Кто-нибудь знает, как я могу это исправить? Есть ли способ перенастроить это поведение?

4b9b3361

Ответ 1

При создании входа в GKE настройка по умолчанию заключается в том, что балансировщик нагрузки GLBC HTTP будет создан с предоставленными вами серверными компонентами. По умолчанию он настроен на 30-секундный тайм-аут для вашего приложения для обработки запроса.

Если вам требуется более длительное время ожидания, вы должны отредактировать его вручную после настройки в бэкэндах своего балансировщика нагрузки HTTP в облачной консоли Google.

enter image description here

Ответ 2

Начиная с 1.11.3-gke.18, можно настроить параметры тайм-аута в kubernetes напрямую.

Сначала добавьте backendConfig:

apiVersion: cloud.google.com/v1beta1
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:
    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

И альт, ваш балансировщик входной нагрузки теперь имеет время ожидания 40 секунд вместо стандартных 30 секунд.

Видеть https://cloud.google.com/kubernetes-engine/docs/how-to/configure-backend-service#creating_a_backendconfig