Dockerの群れ は(スウォームモードのDockerエンジンとも呼ばれます)、Dockerホストのグループを単一の論理仮想サーバーにするネイティブクラスタリングソリューションです。 Swarmは、クラスター内の多数のDockerホストにアプリケーションを分散させることで、アプリケーションの可用性と高性能を保証します。
また、Docker swarmを使用すると、アプリケーションを水平方向にスケーリングできます。つまり、同じアプリケーションのコンテナインスタンスの数を増やすことができます。
私たちのインフラストラクチャ
デモンストレーションでは、混合オペレーティングシステム環境を使用しています:
HostName | IPアドレス | オペレーティングシステム | 目的 |
---|---|---|---|
dockerm.itgeek.local | 192.168.12.10 | CentOS 7 | ノードで実行されているDockerエンジンを管理するDockerマネージャーとして機能します。 Dockerマネージャーもクラスターの一部を取ります。つまり、コンテナーも実行します。 |
node1.itzgeek.local | 192.168.12.20 | Ubuntu 16.04 | ワーカーノード1(Dockerエンジンの実行) |
node2.itzgeek.local | 192.168.12.30 | Fedora 26/25 | ワーカーノード2(Dockerエンジンの実行) |
Docker swarmは、以前は別のツールでした。 v 1.12のDockerエンジンと統合されました 。つまり、Dockerエンジンをインストールするだけです。 すべてのホストで(マネージャーノードとワーカーノード 。
読む : CentOS 7 /RHEL7にDockerCommunityEditionをインストールする方法
読む :Ubuntu16.04にDockerCommunityEditionをインストールする方法
読む : DockerCommunityEditionをFedora26/Fedora25にインストールする方法
ファイアウォール
スウォームクラスターが正しく機能するには、ファイアウォールで次のポートを開く必要があります。
CentOS / Fedora:
Firewall-cmd --permanent --add-port =7946 / tcpfirewall-cmd --permanent --add-port =4789 / udpfirewall-cmd --permanent --add-port =7946 / udpfirewall-cmd-パーマネント--add-port=2376 / tcpfirewall-cmd --permanent --add-port =2377 / tcpfirewall-cmd --permanent --add-port =80 / tcp ##WebサービスでDockerSwarmをテストしています Firewall-cmd --reload
Ubuntu:
ufw statusufw allow 2376 / tcpufw permit 7946 / tcpufw permit 7946 / udpufw permit 2377 / tcpufw permit 4789 / udpufw allow 80 / tcp ##WebサービスでDockerSwarmをテストしています ufw reloadufw enable
ファイアウォールチェーンはDockerルールに影響を与えるため、必要なポートを開いた後、Dockerエンジンを再起動します。
systemctl restart docker
これ以降、記載されているすべてのコマンドはユニバーサルDockerコマンドであるため、Dockerがサポートする任意のオペレーティングシステム(この場合は CentOS 7 )でコマンドを実行できます。 、 Ubuntu 16.04 、および Fedora 26/25 。
群れを作成する
「swarminit」を使用してクラスタの作成を開始しましょう 「。マネージャノード( dockerm.itzgeek.local )で次のコマンドを実行します 。
[root @ dockerm〜]#docker swarm init --advertise-addr 192.168.12.10
–advertise-addr オプションは、アドレスを 192.168.12.10として公開するマネージャーノードを指定します ワーカーノードがクラスターに参加できるようにします。
出力:
スウォームが初期化されました:現在のノード(uhh38rpazd5tnzjph2g5rhgxy)がマネージャーになりました。このスウォームにワーカーを追加するには、次のコマンドを実行します: docker swarm join \ --token SWMTKN-1-5y1u36a0osykywxeme2akpjp4jgx2l67mbqbc4fnazs39bp314-e6djx8ma2qnevolztpplkn26j \ 192.168.12.10:2377 この群れにマネージャーを追加するには、「docker swarm join-token manager」を実行し、指示に従います。
上記の出力には、ワーカーノードをクラスターに追加するためのトークンが含まれています。
次のコマンドを使用して、群れの現在のステータスを表示します。
[root @ dockerm〜]#docker info
出力:
コンテナ:0実行中:0一時停止:0停止:0画像:0サーバーバージョン:17.03.1-ceStorageドライバー:devicemapperプール名:docker-253:1-297-pool。 。 ..。 。メタデータループファイル:/ var / lib / docker / devicemapper / devicemapper / metadataライブラリバージョン:1.02.135-RHEL7(2016-11-16)ロギングドライバー:json-fileCgroupドライバー:cgroupfsPlugins:ボリューム:ローカルネットワーク:ブリッジホストmacvlan nullオーバーレイ群れ:アクティブ NodeID:uhh38rpazd5tnzjph2g5rhgxy マネージャー:true ClusterID:kp8tgowwcuiv3om0wzfgpngp7 マネージャー:1 ノード:1 オーケストレーション:タスク履歴保持制限:5ラフト:スナップショット間隔:10000保持する古いスナップショットの数:0ハートビートティック:1選挙ティック:3ディスパッチャー:ハートビート期間:5秒CA構成:有効期限:3か月ノードアドレス:192.168。 12.10マネージャーアドレス:192.168.12.10:2377ランタイム:runcDefaultランタイム:runcInitバイナリ:docker-initcontainerdバージョン:4ab9917febca54791c5f071a9d1f404867857fccruncバージョン:54296cf40ad8143b62dbcaa1d90e520a2136ddfeinitバージョン:54296cf40ad8143b62dbcaa1d90e520a2136ddfeinitバージョン:54296cf40ad8143b62dbcaa1d90e520a2136ddfeinitバージョン:949 (コア)OSType:linuxArchitecture:x86_64CPUs:1Total Memory:979.9 MiB Name:dockerm.itzgeek.local ID:OTNI:UJZA:7CC4:TS5N:TVJ7:XXQE:5J7Q:ENWW:ZVPD:3VJI:F5DL:JYSPDockerルートディレクトリ:/ var / lib / dockerDebugモード(クライアント):falseDebugモード(サーバー):falseレジストリ:https:/ /index.docker.io/v1/警告:bridge-nf-call-iptablesが無効になっています警告:bridge-nf-call-ip6tablesが無効になっています実験:false安全でないレジストリ:127.0.0.0/8ライブ復元が有効になっています:false
次のコマンドを使用して、群れのDockerノードを一覧表示できます。
[root @ dockerm〜]#docker node ls
出力:
IDホスト名ステータス可用性マネージャーステータスuhh38rpazd5tnzjph2g5rhgxy*dockerm.itzgeek.local Ready Active ページ:1 2
CentOS 7 / Ubuntu 16.04 /Fedora26/25でDockerプライベートレジストリをセットアップする方法 アクティベーションキーを使用してLinuxサーバーをKatelloサーバーに登録する方法Cent OS