Ошибка на фасике
выдает эту фигню короче ватафак
upstream connect error or disconnect/reset before headers. reset reason: overflowПохоже, ты наткнулся на классическую ошибку Envoy-прокси (скорее всего, у тебя Istio, или просто Envoy стоит перед сервисом). Текст ошибки:
text
upstream connect error or disconnect/reset before headers. reset reason: overflowПереводится примерно так: «Ошибка подключения к upstream или обрыв соединения до отправки заголовков. Причина сброса: переполнение».
overflow здесь означает, что размер ответных HTTP-заголовков (response headers), которые отдаёт твой бэкенд (сервис), превысил лимит, установленный в Envoy. По умолчанию Envoy разрешает не более 60 КиБ на все заголовки ответа. Если сервис кладёт в заголовки что-то очень большое (например, огромные cookies, длинные кастомные заголовки, редиректы с большими URL в Location), наступает overflow — и Envoy рвёт соединение.
Как исправить
1. Уменьшить заголовки в самом приложении
Проверь, нет ли в ответе огромных Set-Cookie или лишних кастомных заголовков.
Особенно часто проблема возникает, если в cookie пихают много данных (токены, сериализованные объекты).
Если у тебя прокси/балансировщик добавляет свои заголовки, проверь, не дублируются ли они.
2. Увеличить лимит в Envoy
Если уменьшить заголовки не получается (или это временное решение), можно поднять лимит. Способ зависит от того, как именно у тебя используется Envoy.
Если это Istio sidecar, можно задать аннотацию в DestinationRule или через EnvoyFilter.
Например, через аннотацию к поду (для sidecar):yaml
1234567traffic.sidecar.istio.io/includeInboundPorts: "*" proxy.istio.io/config: | proxyStatsMatcher: inclusionRegexps: - ".*" # увеличим лимит ответных заголовков maxResponseHeadersSize: 96 # значение в КиБИли в EnvoyFilter можно выставить max_response_headers_size в настройках HTTP-менеджера соединений.
Если это standalone Envoy, в конфиге envoy.yaml в секции http_connection_manager нужно добавить (или изменить):
yaml
1234http_filters: - name: envoy.filters.http.router typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.RouterПараметр max_response_headers_size задаётся на уровне HttpConnectionManager:
yaml
123http_connection_manager: max_response_headers_size: 96 # КиБ (по умолчанию 60) ...Если ошибка идёт от ingress-шлюза (например, Istio Ingress Gateway), то параметр нужно менять в конфигурации самого шлюза (через IstioOperator или EnvoyFilter для gateway).
3. Как быстро проверить размер заголовков
Можно курлом запросить сервис напрямую (в обход Envoy) и посмотреть суммарный объём заголовков:
bash
curl -s -o /dev/null -D - http://твой-сервис:порт/путь | wc -cЕсли цифра под 60 000 или выше — точно проблема в этом.
Если уточнишь, где именно всплыла ошибка (в поде с сайдкаром, на Ingress Gateway или в кастомном Envoy), могу дать более точный рецепт для твоего «фасика» 😉