2.7 KiB
2.7 KiB
2026-08-21 — LoadTest: сборка Docker-образа для «Простой HTTP контейнер»
Дата: 2026-08-21. Ветка: master. Состояние Flask сохранено в ветке flask-state (запушена).
Задача
Перевести loadtest с managed-Flask (gitPath, без аннотаций) на «Простой HTTP контейнер»: образ + переменные пода + аннотации к Ingress (раньше правили кубером на своём кластере).
Что сделано
- Ветка
flask-state— сохранение состояния Flask (запушена в origin). Dockerfileв loadtest (master):python:3.12-slim, WORKDIR /app, requirements.txt, COPY site/, EXPOSE 5000- CMD gunicorn
--timeout 300 --workers 1 site.app:app - Один EXPOSE (5000) — требование платформы (порт берётся из EXPOSE).
- Сборка на ВМ (SSH remote-dev, docker 29.1.3):
docker build -t naeel/loadtest:v2.0.0- Контекст:
/home/naeel/loadtest-build(rsync из локального loadtest). - Логин Docker Hub на ВМ уже есть (
naeel).
- Контекст:
- Push:
naeel/loadtest:v2.0.0— digestsha256:432a8742..., linux/amd64, ~50MB, публичный.
Данные для формы «Простой HTTP контейнер»
- Путь до образа:
naeel/loadtest:v2.0.0 - Переменные пода:
{}(секретов/окружения нет) - Дополнительные аннотации к Ingress (JSON):
{
"nginx.ingress.kubernetes.io/proxy-body-size": "1024m",
"nginx.ingress.kubernetes.io/proxy-connect-timeout": "120",
"nginx.ingress.kubernetes.io/proxy-read-timeout": "600",
"nginx.ingress.kubernetes.io/proxy-send-timeout": "600",
"nginx.ingress.kubernetes.io/proxy-request-buffering": "false"
}
Почему эти аннотации
Взяты из правок, которые раньше делали кубером на iot-naeel (см. History drhider):
proxy-body-size 1024m— лимит тела (на общем кластере >64КБ обрывало: HTTP 000 ~10с).connect/read/send-timeout 120/600/600— таймауты (drhider ingress те же значения).proxy-request-buffering false— отключение буферизации тела (план, не выполненный на iot-naeel).
Обновление образа
Только пересоздание контейнера с новым тегом (latest кэшируется зеркалом платформы).
В своём кластере — kubectl -n <ns> set image deployment/containerk8s app=naeel/loadtest:<tag>.