así que tengo esta agradable API de descanso implementada en Flask ejecutándose en Docker y estoy pensando en escalar. Así es como progresé:
CMD ["flask", "run", "--host=0.0.0.0"]
y
docker run -d -p 5000:5000 pyrest-alpine
funciona bien
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "pyrest:app"]
y
docker run -d -p 5000:5000 pyrest-alpine
Esto también funciona bien, Gunicorn proporcionó algo de escala a través del modelo de trabajador prefork en un solo contenedor, ahora quiero escalar a través de la replicación del enjambre Docker con controles de salud donde ambos
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "pyrest:app"]
y
CMD ["flask", "run", "--host=0.0.0.0"]
funciona bien con
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
Mi pregunta es ¿Todavía uso gunicorn cuando uso la replicación de enjambre de docker?
fuente