37 lines
2.3 KiB
Markdown
37 lines
2.3 KiB
Markdown
# 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 в коде не меняли — по команде пользователя).
|