diff --git a/History/diag-2026-08-18-ingress-annotation.md b/History/diag-2026-08-18-ingress-annotation.md new file mode 100644 index 0000000..ff8bb72 --- /dev/null +++ b/History/diag-2026-08-18-ingress-annotation.md @@ -0,0 +1,42 @@ +# Связка: обрыв >64КБ — лимит тела на внешнем ingress (подтверждено разработчиком платформы) + +_Дата: 2026-08-18. Анонимно (без реальных имён)._ + +## Контекст +На общем кластере (`k8s-4-sandbox-nubes-ru`) HTTP-тела >~64-68 КБ обрываются (HTTP 000, +~10.2 с, TTFB=0). На iot-naeel — задержка ~51.5 с, но 200. Приложение/Flask/сеть кластера +мгновенные (проверено внутри кластера). + +## Разговор с разработчиком платформы (суть) +- Разработчик: «сервис публикуется в интернет, нужно добавить аннотацию для ингресса + (типа proxy-body-size / client_max_body_size), параметр находится в ns». +- Пользователь: «деплой на managed — доступа к ns нет; где это задаётся в "Создание + экземпляра: Web-сервер с фреймворком Flask"?». +- Пользователь подтвердил: после редеплоя contractor на `k8s-4-sandbox-nubes-ru` + «всё, более 64К не приемлет». +- Разработчик признал: «нужно сделать параметр для аннотации... спутал с внутренними + сервисами разработки». Заведена таска, «пока руки не доходят». +- Инцидент подтверждает: ограничение на **внешнем ingress/шлюзе** (лимит тела ~64КБ + / буферизация), управление им — на стороне платформы (ЛК/аннотация), а не в коде. + +## Диагноз +- Симптом `HTTP 000, ~10 с, TTFB=0` при телах >~64-68 КБ = внешний ingress/шлюз + (client_max_body_size / client_body_buffer_size / send_timeout). +- На iot-naeel тот же слой, но иначе настроен (~50с, пропускает). +- **Это не фикс в коде приложения** — нужен параметр/аннотация ingress в платформе + (который разработчик обещал добавить). + +## Два ОТДЕЛЬНЫХ ограничения (не путать) +1. **Вход (внешний ingress/шлюз)** — лимит размера тела ~64КБ → решается + аннотацией ingress (`proxy-body-size` / `client_max_body_size`) на платформе. +2. **Память пода** (напр. contractor лимит 1Gi) — тяжёлый синхронный парсинг большого + файла → OOM (502) → решается памятью инстанса ИЛИ выносом парсинга из запроса. + +## Статус +- Платформа: задача на добавление параметра аннотации ingress — заведена, в работе. +- Код loadtest: готов для повторных замеров после появления параметра. + +## Файлы +- `History/diag-2026-08-18-msg-delay.md` +- `History/diag-2026-08-18-compare-clusters.md` +- `History/session-2026-08-18-msg-delay.md`