Files
loadtest/History/2026-08-21-gunicorn-fix-v201.md
T

38 lines
2.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.
# 2026-08-21 — LoadTest: фикс gunicorn (site.app → --chdir /app/site app:app), v2.0.1
_Дата: 2026-08-21. Ветка: master. Инстанс: http-12.containerk8s.dev.nubes.ru (503)._
## Симптом
Инстанс отдавал 503 на всех путях (ingress nginx отвечал, бэкенд недоступен).
Локальный прогон образа на ВМ показал падение gunicorn:
```
ModuleNotFoundError: No module named 'site.app'; 'site' is not a package
```
## Причина
Папка `site/` в проекте конфликтует со **стандартным модулем Python `site.py`**
(автоматически импортируется интерпретатором при старте). `import site.app` всегда
резолвится в stdlib-`site` → ModuleNotFoundError → worker падает → под не Ready → 503.
На managed-Flask работало, потому что платформа запускала ФАЙЛ `python site/app.py`,
а не импорт пакета `site.app`.
## Фикс
`Dockerfile` CMD:
```
gunicorn --bind 0.0.0.0:5000 --chdir /app/site --timeout 300 --workers 1 app:app
```
- `--chdir /app/site` + импорт `app:app` (без пути через `site`) — stdlib-`site` не мешает.
- Проверено на ВМ: `docker run naeel/loadtest:v2.0.1``/health` = `ok v2.0.0`, HTTP 200.
## Образ
- `naeel/loadtest:v2.0.1` — digest `sha256:9ad5cd52...`, запушен в Docker Hub.
- В ЛК редеплой с путём `naeel/loadtest:v2.0.1` (новый тег — старый v2.0.0 мог кэшироваться зеркалом).
## Кластеры (наблюдения 2026-08-21)
- `k8s-3-sandbox-nubes-ru` — НЕ запускается вообще (баги платформы: script returned exit code 1,
No such property: name for class: Script2, поды не работают).
- `k8s-4-sandbox-nubes-ru` — запустилось, но ТОЛЬКО с одной аннотацией:
`nginx.ingress.kubernetes.io/proxy-body-size: 1024m`.
Добавление других аннотаций (таймауты/request-buffering) → падение скрипта платформы
(поле `ingress_annotations` «поддерживает пока простые аннотации»).