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

2.7 KiB
Raw Blame History

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):
{
  "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>.