diff --git a/History/2026-08-21-egress-confirmed.md b/History/2026-08-21-egress-confirmed.md new file mode 100644 index 0000000..b0f10d0 --- /dev/null +++ b/History/2026-08-21-egress-confirmed.md @@ -0,0 +1,36 @@ +# 2026-08-21 — EGRESS подтверждён: Flask (managed) тянет большие файлы с ВМ + +_Дата: 2026-08-21. Инстанс: `http-12.containerk8s.dev.nubes.ru` (k8s-4-sandbox), образ v2.0.2._ + +## Суть +Проверена схема «ВМ-буфер + Flask тянет сам (pull)»: +браузер → ВМ (большой файл, без шлюза); ВМ шлёт маленький POST с метаданными; +Flask САМ тянет файл с ВМ исходящим GET (egress). + +## Что сделано +1. ВМ (5.172.178.213): раздача статических файлов через существующий nginx + (`nginx-contracts.conf`, добавлен `location /lt-serve/` → `/var/www/lt-serve/`): + - `https://contracts.kube5s.ru/lt-serve/big-1m.bin` — 200, 1MB, ~0.2с + - `https://contracts.kube5s.ru/lt-serve/big-10m.bin` — 200, 10MB, ~1.0с + - Backup конфига: /tmp/nginx-contracts.conf.bak.20260821 +2. LoadTest: временный endpoint `/fetch?url=...` (исходящий GET, возвращает + статус+размер). Образ `naeel/loadtest:v2.0.2`. + +## Результат egress (ЗАПРОС ИЗ КЛАСТЕРА, managed-контейнер) +| Тест | Результат | +|---|---| +| `/fetch` 1MB (contracts.kube5s.ru) | 200, size 1048576, ~302мс | +| `/fetch` 10MB | 200, size 10485760, ~889мс | + +## Вывод +- Egress из managed-кластера наружу РАЗРЕШЁН; большие ОТВЕТЫ проходят без обрывов. +- Входной шлюз платформы (лимит ~64КБ, обрывы POST ~10с) в egress НЕ участвует. +- Схема «ВМ = временный склад + pull» РАБОТАЕТ: данные наружу не выходят + (браузер → ВМ напрямую, Flask тянет с ВМ; ВМ → внешний вход не используется). + +## Наблюдение (прокси) +Локальные curl-ы на Krupski идут через HTTP-прокси (172.17.192.1:10808), который +душит передачу (обрыв ~16КБ). Тесты извне — ТОЛЬКО с `--noproxy '*'`. + +## Замечание +Версия в морде/health осталась v2.0.0 (VERSION в коде не меняли — по команде пользователя).