複数の物理サーバで稼働するコンテナ同士の通信を可能にするには、Docker Swarmを用いたオーバレイネットワークを構築します。前回はその概要について解説しましたが、今回はこの環境を構築する方法を紹介します。
前回の記事でも紹介したように、Docker 1.12以上で搭載されたSwarmには、さまざまな機能が存在します。ここでは、Swarmクラスタの構築、オーバレイネットワークの設定、さらにオーバレイネットワーク上でのコンテナ間の通信を行う手順を簡単に取り上げます。
今回はマネージャノード1台、ワーカノード2台で構成します。ワーカノードの1台にWebサーバのコンテナを起動し、さらにもう1台のワーカノードのコンテナからWebサーバのコンテナにアクセスすることで、オーバレイネットワークの通信を確認します。構築する環境は以下のとおりです。
項目 | 物理サーバ1号機 | 物理サーバ2号機 | 物理サーバ3号機 |
---|---|---|---|
Swarmクラスタにおける役割 | マネージャノード | ワーカノード | ワーカノード |
ホストOS | CentOS 7.2 | CentOS 7.2 | CentOS 7.2 |
ホストOSに付与したホスト名 | n0121 | n0122 | n0123 |
Dockerエンジン | 1.12 | 1.12 | 1.12 |
ホストOSのIPアドレス | 172.16.1.121/16 | 172.16.1.122/16 | 172.16.1.123/16 |
Dockerイメージ | なし | larsks/thttpd | centos:centos7.2.1511 |
稼働させるコンテナ名 | なし | test01 | test02 |
物理サーバの1号機、2号機、3号機はネットワークスイッチに接続され、それぞれのホストOSは、172.16.0.0/16のネットワークで通信できる状態にします。また、オーバレイネットワークは以下のとおりです。
項目 | 値 |
---|---|
ネットワーク名 | mynet01 |
ネットワークアドレス | 172.19.0.0/24 |
構築するオーバレイネットワークを172.19.0.0/24と定義しましたので、コンテナには172.19.0.X/24のIPアドレスが付与され、物理サーバをまたいで通信することになります。今回のゴールは、物理サーバの3号機のDockerコンテナから、2号機で稼働するWebサーバ入りのDockerコンテナが提供するテスト用のWebコンテンツにアクセスすることとします。
Copyright © ITmedia, Inc. All Rights Reserved.