浅谈Docker swarm+HAProxy/Nginx

就不废话了,直接画出系统逻辑架构图: 这里有些问题简单交待一下: HAProxy/Nginx作为External network的入口 Docker swarm是Internal network,不对外公开 HAProxy/Nginx在配置Load Balance时,每个Server的定义仍然使用的是各Docker work nodes的IP地址(最大的提高性能),在Nginx中类似于下面的配置片断: upstream apache2{ server 192.168.0.2:8080; server 192.168.0.3:8080; } server{ listen 80; server_name apache.zhuoyue.me; location /{ proxy_pass http://apache2; } } Docker swarm也有自己的Load Balance和Health check功能和规则,在上一项的描述中,我们也可以在Nginx中不去指定upstream,而让swarm去进行load balancing,那么在nginx就可以这样配置: server{ listen 80; server_name apache.zhuoyue.me; location /{ proxy_pass http://192.168.0.2:8080; } } 但这种配置有一个缺点:那就是192.168.0.2这台host上的docker process不能halt。 那么整个docker swarm创建过程可能是这样的: 在docker manager node上创建了一个task: docker service create… Continue reading 浅谈Docker swarm+HAProxy/Nginx