docker swarmによるマルチポストでのクラスタリング環境構築

docker composeは単一ノード内で異なるコンテナ連携やコンテナのスケールアウトが
可能なツール。
Swarmは複数の物理ノードをクラスタ構成管理を実現するツール。

そのため、docker composeとswarmの組み合わせにより、複数ホストでコンテナをスケール
アウトさせる環境を構築できる。
swarmは1台のマスターノードと複数のスレーブノードを構成しクラスタ化を行う。

マスターノード1台、スレーブノード2台の構成とする。
まず3台にdocker-ceをインストールする。

インストールが完了したら、/lib/systemd/system/docker.serviceを編集する
その際に–labelにてわかりやすいように管理できるようにしておきます。

●トークン生成
マスターノードとスレーブはトークンを利用してクラスタ構成を行う。
マスター側でトークンを作成する

●/etc/hostsを編集してipとホスト名を記述する。マスターとスレーブ全台で実施

マスターノードとスレーブノードの設定を行う
スレーブノードでクラスタへ参加させ、マスターノードでswarmマネージャを起動する

クラスタへのアクセスして、スレーブノードがswarmクラスタに参加しているか確認を行う。
●マスターノード

上記の様に、slave1/2ともにStatus: Healthyと表示されていれば問題なくクラスタ構成となっている。

つづいて、swarmクラスタの特定ノードでコンテナを起動させてみる。全スレーブノードで
webサーバ用のdockerfileを作成してimageをビルドする。

マスターノードからクラスタノードでコンテナを起動するかの確認を行う

slave2でweb02が、slave1でweb01が起動していることがわかる

ラベルを指定して指定したスレーブノードでコンテナを起動させてみる
runオプションに「-e constraint:」を指定して「nodetype-==XXXX」で指定することで任意のスレーブノードでコンテナを
起動させることができる。

labelで指定したslave1側でweb04が作成されていることを確認できる。

つづいて、docker-ccomposeでコンテナをスケールアウトできる環境を準備する。
全ノードにdocker-commposeをインストールして、docker compose用のyamlファイルを用意する

なんかexeitedしているが、がとりあえず起動できたことはを確認。
続いてスケールアウトを行う

これもよくわかりませんが、とりあえず4台起動したことは確認

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です