CentOS 7 VPSまたは専用サーバーでDocker Swarmクラスターをセットアップする方法

スウォームモードのDockerエンジンとしても知られるDocker Swarmは、Dockerホストのグループを管理するために使用されるDockerコンテナー用の新しいクラスター化およびオーケストレーションツールです。.


この記事では、Docker 1.12のDockerを紹介します。コンピューティングプロセスでのコンテナーの追加と削除が可能です。 Docker Swarmには2つの主要コンポーネントがあります。

マネージャーノード: サービスのスケジューリング、クラスターの状態の維持、Docker Swarmモードのエンドポイントの提供など、クラスタータスクの管理を扱います.

ワーカーノード: クラスターコンテナーを実行するために使用.

このチュートリアルでは、CentOS 7でのDocker Swarmモードのインストールと構成について詳しく説明します。この記事では、3つのCentOS 7を使用して、Dockerエンジンをインストールおよび起動します。これらのうち、2つのサーバーがワーカーノードまたはDockerエンジンとして機能し、残りの1つがマネージャーになります

前提条件

この場合、次のものが必要です。

  • Dockerとともにインストールされるローカルマシン。マシンはWindows、Linux、またはmacOSで実行できます.
  • CentOS 7が完全にインストールされた3台のサーバー。 1つのサーバーはマネージャーノードになり、他の2つのサーバーはワーカーノードになります.
  • 次のIPアドレスを使用します:マネージャーノードには172.168.0.101、ワーカーノード1には172.168.0.102、ワーカーノード2には172.168.0.103.

以下の上位3つのVPSサービスを確認してください。

A2ホスティング

開始価格:
$ 5.00


信頼性
9.3


価格
9.0


使いやすい
9.3


サポート
9.3


特徴
9.3

レビューを読む

A2 Hostingにアクセス

ScalaHosting

開始価格:
$ 12.00


信頼性
9.4


価格
9.5


使いやすい
9.5


サポート
9.5


特徴
9.4

レビューを読む

ScalaHostingにアクセス

Hostinger

開始価格:
3.95ドル


信頼性
9.3


価格
9.3


使いやすい
9.4


サポート
9.4


特徴
9.2

レビューを読む

Hostingerにアクセス

https://ecs.console.aliyun.com/?spm=a3c0i.o25424en.a3.13.388d499ep38szxにログインし、CentOS 7を選択します。ログインしたら、以下のコマンドを実行して、システムが利用可能な最新のパッケージ:

yum update -y

始めましょう

プロセスを開始する前に、ホスト名を使用して相互に通信しやすくなるように、すべてのノードで/ etc / hostsファイルを構成してください。.

以下のコマンドを使用して、ホストファイルを更新します。

172.168.0.101dkmanager.example.com dkmanager

172.168.0.102 workernode1.example.com workernode1

172.168.0.103 workernode2.example.com workernode2

完了したらファイルを保存します.

次に、hostsファイルに応じて、すべてのノードのホスト名を設定します.

各ノードに対して以下のコマンドを実行します.

マネージャーノード:

hostnamectl set-hostname managernode

ワーカーノード1:

hostnamectl set-hostname workernode1

ワーカーノード2:

hostnamectl set-hostname workernode2

ステップ1:Docker Engineのインストール

次に、各ノードにDockerバージョンをインストールします。 Dockerリポジトリシステムを設定し、すべてのホスト名で以下のコマンドを実行します.

2つのワーカーノードサーバーに対して同じことを行う.

ステップ2:各ノードでファイアウォールを構成する

次のステップは、ファイアウォールのポートを開いて、Swarmクラスターが正しく機能していることを確認することです.

すべてのノードで以下のコマンドを続行して実行します。

Dockerサービスを再起動します。

各ワーカーノードで以下のファイアウォールポートを開き、Dockerサービスを再起動します。

ステップ3:SwarmまたはClusterを起動する

Managerノードのスウォームを初期化しました。これを行うには、以下のコマンドを実行します.

docker swarm init –advertise-addr 192.168.0.101

以下の出力が表示されることを確認してください。

上記の出力によって生成されるトークンは、マネージャーノードとワーカーノードの結合に役立ちます

以下のコマンドを使用して、マネージャーのステータスを確認します。

ドッカー情報

出力は次のようになります。

コンテナ:0
実行中:0
一時停止:0
停止:0
画像:0
サーバーのバージョン:17.12.0-ce
ストレージドライバー:devicemapper
プール名:docker-253:0-618740-pool
プールのブロックサイズ:65.54kB
ベースデバイスサイズ:10.74GB
バッキングファイルシステム:xfs
サポートされているUdev Sync:true
データファイル:/ dev / loop0
メタデータファイル:/ dev / loop1
データループファイル:/ var / lib / docker / devicemapper / devicemapper / data
メタデータループファイル:/ var / lib / docker / devicemapper / devicemapper / metadata
使用されるデータスペース:11.8MB
データスペース合計:107.4GB
利用可能なデータスペース:3.817GB
使用されるメタデータ領域:581.6kB
メタデータスペースの合計:2.147GB
利用可能なメタデータ容量:2.147GB
シンプールの最小空き容量:10.74GB
遅延削除が有効:true
Deferred Deletion Enabled:true
遅延削除済みデバイス数:0
ライブラリバージョン:1.02.140-RHEL7(2017-05-03)
ロギングドライバー:json-file
Cgroupドライバー:cgroupfs
プラグイン:
ボリューム:ローカル
ネットワーク:ブリッジホストmacvlan nullオーバーレイ
ログ:awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
群れ:アクティブ
NodeID:viwovkb0bk0kxlk98r78apopo
マネージャーですか:true
ClusterID:ttauawqrc8mmd0feluhcr1b0d
マネージャー:1
ノード:1
オーケストレーション:
タスク履歴の保持制限:5
ラフト:
スナップショット間隔:10000
保持する古いスナップショットの数:0
ハートビートティック:1
選挙ティック:3
発車係:
ハートビート期間:5秒
CA構成:
有効期限:3か月
強制回転:0
自動ロックマネージャ:false
ルートの回転が進行中:false
ノードアドレス:192.168.0.102
マネージャーの住所:
192.168.0.102:2377
ランタイム:runc
デフォルトのランタイム:runc
Init Binary:docker-init
コンテナーバージョン:89623f28b87a6004d4b785663257362d1658a729
runcバージョン:b2567b37d7b75eb4cf325b77297b140ea686ce8f
初期バージョン:949e6fa
セキュリティオプション:
seccomp
プロファイル:デフォルト
カーネルバージョン:3.10.0-693.11.1.el7.x86_64
オペレーティングシステム:CentOS Linux 7(コア)
OSType:linux
アーキテクチャ:x86_64
CPU:1
総メモリ:1.102GiB
名前:centOS-7
ID:DN4N:BHHJ:6DJ7:SZPG:FJJC:XP6T:23R4:CESK:E5PO:SJ6B:BOST:HZQ5
Dockerルートディレクトリ:/ var / lib / docker
デバッグモード(クライアント):false
デバッグモード(サーバー):false
レジストリ:https://index.docker.io/v1/
ラベル:
実験的:偽
安全でないレジストリ:
127.0.0.0/8
ライブリストアが有効:false

以下のコマンドを使用して、クラスターに存在するノードの完全なリストを表示する必要があります。

Dockerノードls

出力は次のようになります。

ステップ4:ワーカーノードをマネージャーノードに追加する

以下のコマンドを使用して、ワーカーノードをdocker swarmサービスに追加します。

docker swarm join –token SWMTKN-1
3793hvb71g0a6ubkgq8zgk9w99hlusajtmj5aqr3n2wrhzzf8z-1s38lymnir13hhso1qxt5pqru 192.168.0.101:2377

出力は次のようになります。

ノードのステータスを確認するには、次のコマンドを実行します。

Dockerノードls

プロセスが成功すると、以下に示す出力が得られます。

失われた結合トークンを取得する場合は、以下のコマンドを実行します。

docker swarm join-token manager -q

これで、Docker Swarmモードは2つのワーカーノードで正常に実行されます。.

ステップ5:Swarmモードでサービスをセットアップする

次に、Swarmモードでサービスを起動します。この場合、3つのコンテナーを使用してDocker SwarmモードでWebサービスを起動します.

Docker Managerからのみ以下のコマンドを実行します。

docker service create -p 80:80 –name webservice –replicas 3 httpd

出力は次のようになります。

サービスのステータスを確認するには、次のコマンドを実行します。

ドッカーサービスls

出力は次のようになります。

上記の出力により、コンテナーはクラスターノード全体に正常にデプロイされます。これで、次のWebブラウザアドレスを使用して、任意のノードからWebページにログインするのが簡単になりました。.

http:// 172.168。 0.101
http://172.168。 0.102
http://172.168。 0.103

ステップ6:コンテナーの自己修復のテスト

Docker Swarm Modeには、コンテナーの自己修復などの独自の機能が含まれています。コンテナーが機能しない場合、マネージャーはその特定のノードでコンテナーが自動的に再起動するようにします.

プロセスが機能しているかどうかをテストするには、workernode2からコンテナーを削除して、新しいコンテナーが起動されているかどうかを確認しましょう.

以下のコマンドを実行して、Workernode2のコンテナーIDを一覧表示します。

ドッカーps

出力は次のようになります。

ここで、以下のコマンドを実行してコンテナー9b01b0a55cb7を削除します。

docker rm 9b01b0a55cb7 -f

ここで、Managerノードから新しいコンテナーがデプロイされているかどうかを確認します。

docker service ps webservice

ここまでで、1つのコンテナーが失敗し、すぐにworkernode2で別のコンテナーが開始されていることに気付くでしょう:

ステップ7:サービスのコンテナーを拡大および縮小する

Docker Clusterでは、コンテナをスケールアップおよびスケールダウンできます。この場合、サービス用にコンテナを5にスケールアップしてみましょう.

[root @ dkmanager〜]#docker service scale webserver = 5
5にスケーリングされたWebサーバー
[root @ dkmanager〜]#

以下のコマンドを使用して、サービスのステータスを再度確認します。

次に、サービス用にコンテナを2に縮小してみましょう。

[root @ dkmanager〜]#docker service scale webserver = 2
2にスケーリングされたWebサーバー
[root @ dkmanager〜]#

以下のコマンドでプロセスが完了したことを確認します。

これで、CentOS7に完全に構​​成されたDocker Swarmクラスターができました。.

結論

そこにあります。これが、新しいSwarmモードとDockerエンジンの助けを借りてDocker Swarmをセットアップするのがいかに簡単かです。セットアップが完了したら、追加のセキュリティ層を提供してサーバーを確実に保護することに注意してください。ファイアウォールと監視機能を備えたセキュリティ機能は良いスタートです.

上位3つの専用サーバーホスティングサービスを確認してください。

A2ホスティング

開始価格:
99.59ドル


信頼性
9.3


価格
9.0


使いやすい
9.3


サポート
9.3


特徴
9.3

レビューを読む

A2 Hostingにアクセス

FastComet

開始価格:
$ 139.00


信頼性
9.7


価格
9.5


使いやすい
9.7


サポート
9.7


特徴
9.6

レビューを読む

FastCometにアクセス

Hostwinds

開始価格:
$ 99.00


信頼性
9.3


価格
9.2


使いやすい
9.2


サポート
9.3


特徴
9.2

レビューを読む

Hostwindsにアクセス

関連するハウツー記事

  • OpenStack HeatでDockerコンテナーをデプロイする方法
    専門家
  • CentOS 7 VPSまたは専用サーバーにDjangoをインストールする方法
    中間
  • Ubuntu 16.04 VPSまたは専用サーバーでDocker Swarmクラスターをセットアップする方法
    専門家
  • インストール & CentOS 7 VPSでCaddy Webサーバーを構成する
    中間
  • Ubuntu 16.04 VPSまたは専用サーバーでSSHを設定する方法
    中間
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me