第31回 Docker Swarmクラスタのオーバレイネットワークを構築する方法古賀政純の「攻めのITのためのDocker塾」(2/7 ページ)

» 2016年11月02日 08時00分 公開

Swarmマネージャを起動する

 それでは、Swarmクラスタによるオーバレイネットワークを実際に構築してみましょう。まずは、Swarmクラスタのマネージャノードを構築します。

 以下では、ホストOSのn0121、n0122、n0123のrootユーザーのコマンドプロンプトをそれぞれ「n0121 #」「n0122 #」「n0123 #」で表すとします。Swarmクラスタのマネージャノードの作成は、dockerコマンドに「swarm init」を付与します。さらに、「--advertise-addr=」オプションを付与し、SwarmマネージャノードがワーカノードにホストOSとSwarmのAPIによる通信を行う際に利用されるアドレスを記述します。今回はマネージャノードのIPアドレスを指定しています。


n0121 # docker swarm init --advertise-addr=172.16.1.121

 この状態で、Swarmクラスタに登録されたノードを確認します。Swarmクラスタに登録されたノードを確認するには、dockerコマンドに「node ls」を付与して実行します。


n0121 # docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
5ownu2cgmq58hd8ia2tistq74 *  n0121     Ready   Active        Leader

 すると、物理サーバ1号機のn0121が登録されていることが分かります。1号機のn0121がマネージャノードの場合は、「MANAGER STATUS」列に「Leader」と表示されます。

Swarmワーカノードの起動

 次に、n0122とn0123でワーカノードを起動します。ワーカノードを起動するには、クラスタに参加するためのトークンという文字列を得る必要があります。このトークンが同一のノードとして一つのクラスタを形成します。まずは、マネージャノードでワーカノード参加のためのトークンを表示します。


n0121 # docker swarm join-token worker
To add a worker to this swarm, run the following command:
    docker swarm join \
    --token SWMTKN-1-1y881q5hkrpynj7uhd0ahhj5ue24049vg82vnu6jwh6yyl3tcd-emxpycaai05khj37leoj7w4zi \
    172.16.1.121:2377

 上記の「--token」以降に表示されている長い文字列が今回構成するSwarmクラスタのトークンです。このトークンを使ってワーカノードをクラスタに参加させます。上記に出力された「docker swarm join」以降のテキストの内容をそのままワーカノードにコピー&ペーストして実行します。ノードn0122をSwarmクラスタにワーカノードとして参加させてみしょう。


n0122 # docker swarm join \
> --token SWMTKN-1-1y881q5hkrpynj7uhd0ahhj5ue24049vg82vnu6jwh6yyl3tcd-emxpycaai05khj37leoj7w4zi \
> 172.16.1.121:2377
This node joined a swarm as a worker.

 同様に、n0123をSwarmクラスタにワーカノードとして参加させます。


n0123 # docker swarm join \
> --token SWMTKN-1-1y881q5hkrpynj7uhd0ahhj5ue24049vg82vnu6jwh6yyl3tcd-emxpycaai05khj37leoj7w4zi \
> 172.16.1.121:2377
This node joined a swarm as a worker.

 上記よりワーカノードは、マネージャノード(172.16.1.121)の2377番ポートで通信することが分かります。ワーカノードがSwarmクラスタに参加できているかをマネージャノード側で確認します。


n0121 # docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
0gijcr6pvjveceuira0q5iv9h    n0122     Ready   Active
5ownu2cgmq58hd8ia2tistq74 *  n0121     Ready   Active        Leader
9tma9o8v8qu8z97n3duhafbhw    n0123     Ready   Active

 マネージャノードn0121にワーカノードのn0122とn0123が登録されましたので、Swarmクラスタが構築できました。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ