一千萬個為什麽

搜索

燒瓶,Gunicorn和碼頭群



所以我在docker中運行的Flask中實現了這個很好的休息API,我正在考慮縮放。這就是我的進步:

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

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

工作正常

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

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

This also 工作正常, Gunicorn provided some scaling via prefork worker model in a single container now I want to scale via replication of Docker swarm with healthchecks where both

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

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

工作得很好

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

我的問題是在使用Docker群集復制時仍然使用gunicorn?

轉載註明原文: 燒瓶,Gunicorn和碼頭群

一共有 1 個回答:

是的,在使用Docker Swarm時,您仍然希望在您的Docker容器中使用Gunicorn。

Gunicorn對於促進服務器和Web應用程序之間的通信是必要的。在Dockerized Flask應用程序的情況下,Gunicorn處理Flask應用程序和Docker容器之間的通信仍然是這種情況。將Docker Swarm添加到此堆棧基本上意味著您有更多的容器實例,並且Swarm將處理將傳入請求平衡到每個實例。