Dockerにおいて表題の通り。前回までの続きであるstep2のswarmクラスタ構築を行う。
- step0: Environment
- step1: Set up a key-value store
- step2-1: Create Swarm cluster
- step2-2: Create Swarm cluster
■ 環境
- Mac OSX (10.10.5)
- Apache ZooKeeper 3.4.6
- Vagrant 1.8.1
- Ubuntu Vivid
■ Create a Swarm cluster
まずは”swarm“のコンテナイメージをそれぞれ`pull`する。
$ vagrant ssh docker1
vagrant@docker1:~$ docker pull swarm
:
$ vagrant ssh docker2
vagrant@docker2:~$ docker pull swarm
ZooKeeperを使用したswarmクラスタの構築については下記を参照した。
Docker Swarm discovery
https://docs.docker.com/swarm/discovery/
それぞれのDockerホスト上で”swarm-agent“というコンテナ名で`swarm join`させる。
docker1:
vagrant@docker1:~$ docker run -d --name swarm-agent swarm join --advertise=192.168.33.11:2375 zk://10.0.2.2:2181/
docker2:
vagrant@docker2:~$ docker run -d --name swarm-agent swarm join --advertise=192.168.33.12:2375 zk://10.0.2.2:2181/
ここまででznodeを確認してみると下記のようになっていた。
/
+ docker
+ nodes
+ 192.168.33.11:2375
+ 192.168.33.12:2375
+ swarm
+ nodes
+ 192.168.33.11:2375
+ 192.168.33.12:2375
続いて、”docker1“にて”swarm-manager“を起動する。
vagrant@docker1:~$ docker run -d --name swarm-manager -p 2376:2375 swarm manage zk://10.0.2.2:2181/
ここで再度znodeを確認したが変わりはなかった。
■ check
swarmクラスタが正常に稼働しているかを確認する。
vagrant@docker1:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ee0f2ea65a33 swarm "/swarm manage zk://1" 2 minutes ago Up 2 minutes 0.0.0.0:2376->2375/tcp swarm-manager
2aa9e4f8f877 swarm "/swarm join --advert" 9 minutes ago Up 9 minutes 2375/tcp swarm-agent
vagrant@docker1:~$
vagrant@docker1:~$ docker -H tcp://localhost:2376 info
Containers: 3
Images: 2
Role: primary
Strategy: spread
Filters: health, port, dependency, affinity, constraint
Nodes: 2
docker1: 192.168.33.11:2375
└ Status: Healthy
└ Containers: 2
└ Reserved CPUs: 0 / 1
└ Reserved Memory: 0 B / 2.052 GiB
└ Labels: executiondriver=native-0.2, kernelversion=3.19.0-42-generic, operatingsystem=Ubuntu 15.04, storagedriver=devicemapper
docker2: 192.168.33.12:2375
└ Status: Healthy
└ Containers: 1
└ Reserved CPUs: 0 / 1
└ Reserved Memory: 0 B / 2.052 GiB
└ Labels: executiondriver=native-0.2, kernelversion=3.19.0-43-generic, operatingsystem=Ubuntu 15.04, storagedriver=devicemapper
CPUs: 2
Total Memory: 4.104 GiB
Name: ee0f2ea65a33
vagrant@docker1:~$
これでswarmクラスタの構築が終了である。
以上。