Files
loadtest/History/2026-08-21-container-build.md
T

43 lines
2.7 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: сборка Docker-образа для «Простой HTTP контейнер»
_Дата: 2026-08-21. Ветка: master. Состояние Flask сохранено в ветке `flask-state` (запушена)._
## Задача
Перевести loadtest с managed-Flask (gitPath, без аннотаций) на «Простой HTTP контейнер»:
образ + переменные пода + аннотации к Ingress (раньше правили кубером на своём кластере).
## Что сделано
1. Ветка `flask-state` — сохранение состояния Flask (запушена в origin).
2. `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).
3. Сборка на ВМ (SSH remote-dev, docker 29.1.3): `docker build -t naeel/loadtest:v2.0.0`
- Контекст: `/home/naeel/loadtest-build` (rsync из локального loadtest).
- Логин Docker Hub на ВМ уже есть (`naeel`).
4. Push: `naeel/loadtest:v2.0.0` — digest `sha256:432a8742...`, linux/amd64, ~50MB, публичный.
## Данные для формы «Простой HTTP контейнер»
- **Путь до образа:** `naeel/loadtest:v2.0.0`
- **Переменные пода:** `{}` (секретов/окружения нет)
- **Дополнительные аннотации к Ingress** (JSON):
```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>`.