У нас есть HTTP Балансировщик нагрузки, созданный приложением kubernetes, который указывает на бэкэнд, образованный множеством модулей, запускающих nginx и Ruby on Rails.
 Взглянув на журналы балансировки нагрузки, мы обнаружили все большее число запросов с кодом ответа 0 и  statusDetails= client_disconnected_before_any_response.
Мы пытаемся понять, почему это происходит, но мы не нашли ничего подходящего. В журналах доступа или ошибок nginx ничего нет.
Это происходит для нескольких запросов, от GET до POST.
Мы также подозреваем, что иногда, несмотря на то, что запрос регистрируется с этой ошибкой, запросы фактически передаются на бэкэнд. Например, мы видим ошибки PG :: UniqueViolation, из-за того, что идентификационные запросы для регистрации дважды отправляются на сервер в нашей конечной точке регистрации.
Любая помощь будет оценена по достоинству. Спасибо!
ОБНОВЛЕНИЕ 1
В качестве запрошенного здесь находится файл yaml для входного ресурса:
ОБНОВЛЕНИЕ 2
Я создал метку Stackdriver на основе журнала, чтобы подсчитать количество запросов, которые представляют это поведение. Вот диаграмма:
Большие пики приблизительно соответствуют отметке времени для этих событий кубернетов:
 Полная ошибка: Readiness probe failed: Get http://10.48.1.28:80/health_check: net/http: request canceled (Client.Timeout exceeded while awaiting headers)"
Так что иногда кажется, что готовность зондов для стручков позади бэкэнда терпит неудачу, но не всегда.
Вот определение готовностиProbe
readinessProbe:
  failureThreshold: 3
  httpGet:
    httpHeaders:
    - name: X-Forwarded-Proto
      value: https
    - name: Host
      value: [redacted]
    path: /health_check
    port: 80
    scheme: HTTP
  initialDelaySeconds: 1
  periodSeconds: 30
  successThreshold: 1
  timeoutSeconds: 5


