我正在搭建一个 Flask/uwsgi 网络服务器。我还在思考微服务架构的问题:
我应该把 nginx 和 Flask 与 uwsgi 放在一个容器中,还是将它们放在两个不同的容器中并将它们链接起来?
我打算在 Kubernetes 集群中运行这些服务。
谢谢。
我正在搭建一个 Flask/uwsgi 网络服务器。我还在思考微服务架构的问题:
我应该把 nginx 和 Flask 与 uwsgi 放在一个容器中,还是将它们放在两个不同的容器中并将它们链接起来?
我打算在 Kubernetes 集群中运行这些服务。
谢谢。
简短回答:
我会将nginx和uwsgi/flask应用程序部署为单独的容器。这样可以提供更加灵活的架构,允许您在需要更多服务时将更多微服务容器链接到nginx实例。
解释:
使用docker通常的策略是将nginx服务和uwsgi/flask服务拆分为两个单独的容器。然后可以使用链接将它们链接起来。这是docker世界中的一种常见架构哲学。像docker-compose这样的工具简化了运行多个容器和在它们之间形成链接的管理。以下docker-compose配置文件显示了一个示例:
version: '2'
services:
app:
image: flask_app:latest
volumes:
- /etc/app.cfg:/etc/app.cfg:ro
expose:
- "8090"
http_proxy:
image: "nginx:stable"
expose:
- "80"
ports:
- "80:8090"
volumes:
- /etc/app_nginx/conf.d/:/etc/nginx/conf.d/:ro