我正在为Magento应用程序堆栈构建Docker Swarm . 使用Swarm的主要原因是应用程序堆栈将在多节点环境中运行 .
以下是应用程序堆栈将运行的服务 -
清漆(加速器)
Nginx(网络服务器)
Redis(缓存/会话)
MySQL(存储)
上述4种服务中的每一种都应该是独立群集的一部分(即4种不同的群集)吗?或者,是否应该为整个应用程序堆栈提供单个群集群集以及某种机制(可能使用Swarm过滤器),仅将服务部署到特定的节点集?
什么是最佳做法?
上述4种服务中的每一种都应该是独立群集的一部分(即4种不同的群集)吗?
相同的群集群集(用于访问同一个泊坞网络的所有服务),尤其是在使用群集模式时 .请参阅Docker队长Luc Juggery的“Deploy a multi services application with swarm mode” .他创建了一个docker网络和一个kv商店(使用swarm模式时不需要),并启动所有连接到同一网络的4个服务 .
docker-machine ssh manager1 docker network create -d overlay appnet docker-machine ssh manager1 docker service create --name redis --network appnet redis:3.0.7-alpine docker-machine ssh manager1 docker service create --name mongo --network appnet mongo:3.2 ...
但是,将这些服务(再次,在同一群集群中)分组的方式是Distributed Application Bundle,如“My first try with DAB (aka Distributed Application Bundle)”所示 .它使用docker-compose bundle将现有的docker compose文件转换为dab .注意:在docker 1.12中,bundle仍然是实验性的 .
1 回答
相同的群集群集(用于访问同一个泊坞网络的所有服务),尤其是在使用群集模式时 .
请参阅Docker队长Luc Juggery的“Deploy a multi services application with swarm mode” .
他创建了一个docker网络和一个kv商店(使用swarm模式时不需要),并启动所有连接到同一网络的4个服务 .
但是,将这些服务(再次,在同一群集群中)分组的方式是Distributed Application Bundle,如“My first try with DAB (aka Distributed Application Bundle)”所示 .
它使用docker-compose bundle将现有的docker compose文件转换为dab .
注意:在docker 1.12中,bundle仍然是实验性的 .