2.3 KiB
2.3 KiB
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— digestsha256: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«поддерживает пока простые аннотации»).