Ich habe diese nette Rest-API in Flask implementiert, die in Docker ausgeführt wird, und ich denke über Skalierung nach. So bin ich vorangekommen:
CMD ["flask", "run", "--host=0.0.0.0"]
und
docker run -d -p 5000:5000 pyrest-alpine
funktioniert gut
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "pyrest:app"]
und
docker run -d -p 5000:5000 pyrest-alpine
Dies funktioniert auch gut. Gunicorn hat eine gewisse Skalierung über das Prefork Worker-Modell in einem einzigen Container bereitgestellt. Jetzt möchte ich über die Replikation des Docker-Schwarms mit Healthchecks skalieren, bei denen beide vorhanden sind
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "pyrest:app"]
und
CMD ["flask", "run", "--host=0.0.0.0"]
arbeiten gut mit
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
Meine Frage ist: Benutze ich immer noch Gunicorn, wenn ich die Docker-Schwarm-Replikation verwende?