Files
loadtest/History/diag-2026-08-18-ingress-annotation.md
T

43 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Связка: обрыв >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`