2.7 KiB
2026-08-21 — LoadTest: тесты лимита тела на http-12 (k8s-4-sandbox), аннотация не помогла
Дата: 2026-08-21. Инстанс: http-12.containerk8s.dev.nubes.ru (k8s-4-sandbox-nubes-ru).
Конфиг: образ naeel/loadtest:v2.0.1, одна аннотация nginx.ingress.kubernetes.io/proxy-body-size: 1024m, CPU 100, mem 200.
Итог
Аннотация proxy-body-size: 1024m на ingress-ресурсе НЕ решает обрыв тел >~64КБ.
Лимит стоит на внешнем входном шлюзе платформы (вне кластера, до ingress-nginx).
Замеры /messages (внешний URL, curl, сырое тело)
| Размер | Результат |
|---|---|
| 60КБ | 200 (0.39с) |
| 64КБ | 200 (0.46с) |
| 68КБ | 000 (10.3с) |
| 84КБ | 200 (0.6с) |
| 100КБ ×3 | 000 (10.2с) все три |
| 512КБ | 000 (10.2с) |
| 1МБ | 000 (10.2с) |
| 10МБ | 000 (10.7с) |
Выводы
- Граница случайная в зоне ~64-84КБ (68КБ рвётся, 84КБ проходит) — как в diag-2026-08-18.
- Всё ≥100КБ — стабильный обрыв ~10.2с (HTTP 000, TTFB=0).
- Картина идентична замеру БЕЗ аннотации → аннотация ingress не влияет на внешний шлюз.
- Кластерные аннотации (proxy-body-size, таймауты, request-buffering) до внешнего шлюза не достают.
Дальше
- Обход: чанкованная передача (Transfer-Encoding: chunked, чанки по 32КБ).
- Или тикет на платформу (поднять лимит на входном шлюзе).
Тест chunked (Transfer-Encoding: chunked, чанки по 32КБ) — ТОЖЕ ОБРЫВ
| Размер | Результат |
|---|---|
| 100КБ | RemoteDisconnected, 9.6с |
| 512КБ | SSLEOFError, 11.3с |
| 1МБ | SSLEOFError, 14.6с |
| 10МБ | SSLEOFError, 9.6с |
Вывод: chunked НЕ обходит шлюз. Время обрыва ~10-15с не пропорционально размеру → фиксированный таймаут внешнего шлюза на приём тела (аналог ~50с на iot-naeel, но ~10с на общем кластере). Способ передачи (Content-Length/chunked) не влияет. Решение — только на стороне платформы (тикет: поднять таймаут/лимит на входном шлюзе), либо дробление на отдельные запросы <64КБ (меняет протокол).