Flask, Gunicorn И Docker Swarm

  • Автор темы Виталий Вараксин
  • Обновлено
  • 19, Oct 2024
  • #1

Итак, у меня есть этот хороший API для отдыха, реализованный во Flask, работающий в докере, и я думаю о масштабировании. Вот как я прогрессировал:

 
 
 
 
 
 
 docker service create --name pyrest-swarm --replicas 2 -p 5000:5000 --health-interval=2s --health-timeout=10s --health-retries=3--health-cmd "curl 0.0.0.0:5000/status || exit 1" pyrest-alpine
 

и

CMD ["flask", "run", "--host=0.0.0.0"]

работает нормально

CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "pyrest:app"]

и

docker run -d -p 5000:5000 pyrest-alpine

Это также работает нормально, Gunicorn предоставил некоторое масштабирование с помощью рабочей модели prefork в одном контейнере, теперь я хочу масштабировать с помощью репликации Docker Swarm с проверками работоспособности, где оба

CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "pyrest:app"]

и

docker run -d -p 5000:5000 pyrest-alpine

работать нормально с

CMD ["flask", "run", "--host=0.0.0.0"]

Мой вопрос: я все еще использую Gunicorn при репликации роя докеров?

#docker #docker-swarm

Виталий Вараксин


Рег
21 Oct, 2020

Тем
69

Постов
199

Баллов
614
  • 25, Oct 2024
  • #2

Да, при использовании Docker Swarm вы все равно захотите использовать Gunicorn в своих контейнерах Docker.

Gunicorn необходим для облегчения связи между сервером и вашим веб-приложением. В случае приложения Dockerized Flask это по-прежнему так, поскольку Gunicorn управляет связью между приложением Flask и контейнером Docker. Добавление Docker Swarm в этот стек по сути просто означает, что у вас будет больше экземпляров вашего контейнера, и что Swarm будет обрабатывать балансировку входящих запросов для каждого экземпляра.

 

Sennoza


Рег
05 Nov, 2014

Тем
85

Постов
207

Баллов
642
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908