From fe4bbb7b28b356ddb49367509ddeee8c86826368 Mon Sep 17 00:00:00 2001 From: naeel Date: Tue, 18 Aug 2026 10:36:12 +0400 Subject: [PATCH] =?UTF-8?q?Docs:=20=D1=81=D0=B2=D1=8F=D0=B7=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=80=D1=8B=D0=B2=D0=B0=20>64=D0=9A=D0=91=20=D1=81?= =?UTF-8?q?=20=D0=BB=D0=B8=D0=BC=D0=B8=D1=82=D0=BE=D0=BC=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D0=B0=20=D0=BD=D0=B0=20=D0=B2=D0=BD=D0=B5=D1=88=D0=BD?= =?UTF-8?q?=D0=B5=D0=BC=20ingress=20(=D0=BF=D0=BE=D0=B4=D1=82=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=B6=D0=B4=D0=B5=D0=BD=D0=BE=20=D1=80=D0=B0=D0=B7=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D1=87=D0=B8=D0=BA=D0=BE=D0=BC=20=D0=BF?= =?UTF-8?q?=D0=BB=D0=B0=D1=82=D1=84=D0=BE=D1=80=D0=BC=D1=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- History/diag-2026-08-18-ingress-annotation.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 History/diag-2026-08-18-ingress-annotation.md 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`