swarm モード導入ガイド¶
このチュートリアルは Docker Engine Swarm モードの機能を紹介します。始める前に、よろしければ 重要な概念 に慣れておいてください。
このチュートリアルは以下の作業を紹介します。
Docker Engine の swarm モードでクラスタを初期化
swarm にノードを追加
アプリケーション・サービスを swarm にデプロイ
swarm を使い始めた後の管理
このチュートリアルは、ターミナル・ウインドウのコマンドライン上で Docker Engine CLI コマンドを実行します。
Docker を初めて使う場合は、 Docker Engine について をご覧ください。
セットアップ¶
チュートリアルを進めるためには、以下の条件が必要です:
Docker Engine 1.12 以上をインストール
ホスト間でポートを開く
接続した3台のマシン¶
このチュートリアルでは、 Docker がインストール済みで、ネットワーク上で通信可能な Linux ホストが3台必要です。これらは物理マシン、仮想マシン、Amazon EC2 インスタンスや、何らかの方法でホストされたものであれば構いません。3台のホストをセットアップする手順は、 Swarm にデプロイ をご覧ください。
各マシンは、1つは manager( manager1
と呼びます)、2つは worker ( worker1
と worker2
)です。
注釈
チュートリアルの多くの手順は、1つのホストしかないような、単位ノードの swarm 上でも同じようにテストできます。マルチノードのコマンドは動作しませんが、swarm の初期化、サービス作成、サービスのスケールは行えます。
Linux マシン上に Docker Engine をインストール¶
Linux をベースとする物理コンピュータやクラウドが提供するコンピュータを、ホストとして使用する場合は、シンプルにプラットフォームに対応した Linux インストール手順 に従います。3台のマシンを起動したら、準備完了です。Linux マシン上の単一ノードおよび複数ノードの swarm 両方をテストできます。
Docker Desktop for mac か Docker Desktop for Windows を使う¶
別の方法として、 Docker Desktop for Mac や Docker Desktop for Windows アプリケーションをコンピュータ上にインストールします。このコンピュータの単一ノードもしくは複数ノードのどちらでもテストできます。
Docker Desktop for Mac や Windows では、swarm モードの単一ノード機能のテストを行えます。この中には、単一ノードの swarm 初期化、サービスの作成、サービスのスケールを含みます。
現時点では、 Docker Desktop for Mac や Docker Desktop for Windows 単独では、複数ノード swarm のテストを行えません。しかしながら、単一ノードの Swarm セットアップでも適用できる例がいくつもあります。
manager マシンの IP アドレス¶
IP アドレスはホスト・オペレーティングシステム上で利用可能なネットワーク・インターフェースに対して割り当てる必要があります。swarm 上の全てのノードが、その IP アドレスに対して manager が接続するために必要です。
そのため、他のノードが manager ノードに通信するには、manager ノードの IP アドレスが必要になるため、この IP アドレスは固定しておくべきでしょう。
Linux や macOS では ifconfig
を実行し、利用可能なネットワーク・インターフェースの一覧を表示します。
チュートリアルでは manager
は 192.168.99.100
です。
ホスト間で開くプロトコルとポート¶
以下のポートの利用が必須です。いくつかのシステム上では、各ポートがデフォルトで開いています。
TCP port 2377 は、クラスタ管理通信のため
TCP と UDP の port 7946 は、ノード間の通信のため
UDP port 4789 はオーバレイ・ネットワーク・トラフィックのため
暗号化したオーバレイ・ネットワーク( --opt encrypted
)の利用を計画中であれば、 ip プロトコル 50 (ESP) トラフィックの許可も必要です。
次は何をしますか?¶
環境のセットアップを終えたら、 swarm を作成 する準備が整いました。
参考
- Getting Started with swarm mode