swarm生産環境クラスタインストール


計画:manager 192.168.1.72/73/74
    consul  192.168.1.72/73/74
    leader  192.168.1.74
    node    192.168.1.70/71
1、discoveryをインストールしconsulを使う
1台目(74)
docker run --net=host --name=consul progrium/consul -server -bootstrap  -ui-dir=/ui -advertise 192.168.1.74

ポートの説明:
http 8500
rpc  8400
wan 8302
lan 8301
通信8300
advertiseはipを傍受することを指定し、外部ネットワークipを書かない場合、デフォルトで内部ネットワークを傍受します.
残り2台
docker run --net=host --name=consul progrium/consul -server -join 192.168.1.74 -advertise 192.168.1.73
docker run --net=host --name=consul progrium/consul -server -join 192.168.1.74 -advertise 192.168.1.72

2、swarm managerのインストール
1台目(74)
docker run -d --net=host --name=swarm-manage swarm manage -H :4000 --replication --advertise 192.168.1.74:4000 consul://192.168.1.74:8500

残り2台
docker run -d --net=host --name=swarm-manage swarm manage -H :4000 --replication --advertise 192.168.1.73:4000 consul://192.168.1.74:8500
docker run -d --net=host --name=swarm-manage swarm manage -H :4000 --replication --advertise 192.168.1.72:4000 consul://192.168.1.74:8500

3、swarm nodeの取り付け(70/71)
docker run -d --net=host --name=swarm-node swarm join --advertise=192.168.1.70:2375 consul://192.168.1.74:8500
docker run -d --net=host --name=swarm-node swarm join --advertise=192.168.1.71:2375 consul://192.168.1.74:8500

フィルタ使用
label role=node 01のnode実行nginxを指定
Label role=node 01は自分でdaemonでカスタマイズする必要があります
docker -H :4000 run -d -e constraint:role==node01 --name Iam-node1 nginx
docker -H :4000 run -d -e constraint:role==node02 --name Iam-node2 redis
node 1とnode 2を別々に除去すると、nginxがnode 1で実行され、redisがnode 2で実行されていることがわかります.