# Sonnet: противоречие — nginx 10/10, Flask raw то 10/10 то 2/10 ## Данные без интерпретаций ### Тест 1: nginx:alpine через тот же VIP/ingress/порт 100KB raw binary POST, 10 запросов, таймаут 2с: **стабильно 10/10** ### Тест 2: Flask (тот же ingress/VIP) — raw binary 100KB raw binary POST, те же параметры: - Первый прогон: 10/10 - Второй прогон (после редеплоя): 2/10 - Третий прогон: 2/10 ### Тест 3: Flask — URL-encoded form (base64) 100KB base64 → 136KB POST: стабильно 2-5/10 ### Тест 4: Flask изнутри кластера pod → VIP: 10/10 всегда pod → ingress service: 10/10 всегда ### Что пробовали - debug=False: 5/10 - Gunicorn: 1/10 (хуже) - proxy_request_buffering on/off: 3-5/10 - kube-vip nodeSelector/taint: не влияет - MSS clamping: не влияет - raw binary вместо form: то 10/10, то 2/10 ## Инфра - Shturval 2.12.1, Cilium CNI - Flask 3.1.3, Werkzeug 3.1.8 - nginx ingress, http2 on, proxy_request_buffering off - kube-vip ARP mode, 4 ноды, ingress hostPort на 2 ## Вопрос Почему nginx:alpine через тот же ingress стабильно 10/10, а Flask raw binary — то 10/10, то 2/10? Что именно в цепочке ingress→Flask даёт такую нестабильность, если тело одно и то же (raw 100KB)? Может ли Werkzeug dev server иметь скрытый баг с keepalive/connection reuse, который проявляется случайно?