Docker Swarmでサーバ2台にアプリのクラスタリングをしたのですが、
ロードバランサとしてdockercloud/haproxy
を使ったところ、
workerノードで稼働させた場合にHTTPコネクションが通りませんでした。
なお、managerノードで稼働させ/var/run/docker.sock
をマウントしている場合はうまくいきました。
使用したスタックファイルは下記になります。
version: '3'
services:
app:
image: dockercloud/hello-world
deploy:
replicas: 2
environment:
SERVER_PORTS: 80
lb:
image: dockercloud/haproxy
deploy:
replicas: 1
placement:
constraints:
- node.role == worker
environment:
DOCKER_HOST: tcp://xxx.xxx.xxx.xxx:2375
ports:
- 80
なお、workerノードのサーバから以下のようなホスト指定したdocker
コマンドの動作は確認しています。
$ docker -H tcp://xxx.xxx.xxx.xxx:2375 ps
どなたか解決方法をご存知ありませんでしょうか。