三銃士でドッキングウィンドウ-機とドッキングウィンドウ・コンドッキングウィンドウを導入した後、ドッキングウィンドウの群れアップを残します。その主人公はBenpianがそれです。
注意:CentOS7、ドッカ19.03のための環境を。
単一ノードのマルチ容器の作成をユーザーに提供するために、ドッキングウィンドウは、作曲、ドッキングウィンドウ-マシンは、別のユーザーの環境マネジメントドッキングウィンドウを可能にします。ドッキングウィンドウの群れは、顧客がドッキングウィンドウのクラスタ管理を達成するのを助けるためにあります。単一のクラスタに。
スウォームさんのプロフィール
群れ、以前はそれが2014年12月に発売スウォームビームプロジェクトとlibswarmプロジェクト、として知られています。そして、後に2016年2月に中ドッカエンジン1.12に統合。直接使用することができるコマンドドッカー群れの群れ(前別コマンド群れ)、以上1Kのサポートノードを使用します。
「マスタ - スレーブ」構成、ラフトプロトコルにおける管理ノード(マネージャ)の複数のコンセンサスを達成するために使用群れ。(ワーカー)⼯ノードの管理ノード上のシステム⼀管理とタスク分散エージェントを実行するとき。ユーザーを使用すると、唯一のサービス要求は、輸送関連サービス⾏タスクにクラスタ内のノードを割り当てるスケジューリングポリシーに従って管理ノード、管理ノードに送信することができ提出する必要があります。
スウォームV2では、クラスターは自動的にボトルネックのシングルポイントを回避するために、追加のディスカバリサービス⽀支援場合ラフトプロトコル選出Managerノード、どんなにによって配布されます。同時に、V2は、支持DNSベースの負荷分散と外部負荷分散メカニズムの統合⽀に構築されています。
基本的な概念を群れ
群れのクラスタ
群れクラスタ(クラスタ)基が⼀ドッカーホストシステムを管理することである⼀です。オブジェクトスウォームクラスタが管理されています。これらのホストによってモードドッカーエンジン⼯ノード(作業者)のような他のホストのために、管理ノード(マネージャ)として要求することができる外部の管理ホストに応答するそのうちのいくつかは、互いに通信する実際ドッカーコンテナを実行するときに群れ。もちろん、同じことが、すなわち、管理ノードとして⼀ホスト、⼯のノードができます。
ユーザがクラスタを使用スウォームを構成する場合、⼀従って特にサービス(指定された状態、コピー数、オープンネットワーク、ストレージ、露光ポート、など)を定義し、次いでに従って指定された管理ノードを介してサービス管理ノードを起動する命令を発行しますサービスルールに⾏クラスタ全体のサービスを起動し、実行しているときに、それが正しく動作することを確認する予定。
ノード
(ノード)は、ほとんどの⼩リソースユニットの群れクラスタです。駅ドッカーホスト⼀実際の各ノード。コマンドは、docker node [COMMAND]
ノードを管理することができます。
クラスタ内のノードの群れは、二つのタイプに分けられます。
- クラスタ外の操作のための要求に応答する責任、およびクラスタリソース、維持するノードに対して⼯するタスクを配布する:管理ノード(管理ノード)。一方、管理ノードのうちラフトプロトコルを介してコンセンサスを形成します。いつものようにシュートは、各クラスタは、5または7管理ノードを設定することをお勧めします。
- ⼯ノード(ワーカーノード)について:特定のタスク⾏管理ノードの手配を行うための責任を負います。デフォルトでは、管理ノードは、自動的にもあるノードとして上向きに胸を⼯。各ノードの⼯タスクの完了を報告するために、プロキシ(エージェント)を実行しています。ユーザーを使用することができる
docker node promote
か、によって、昇降⼀ノードとして⼯コマンド管理ノードであるdocker node demote
ノードについて⼯⼀ダウングレードする管理ノードへのコマンド。
サービス
サービス(サービス)は、複雑なマルチ容器ドッカー⽀支援コラボレーション・シナリオの武器です。docker service [COMMAND]
このコマンドは、サービスを動作させるために使用することができます。
サービスが⼀できる場合は、乾いたタスクは、特定のタスクのそれぞれは、それがなされるべきで使用してください。さらに、アクセス、更新、および他の追加の構成パラメータに構成された、対応するサービス、オープンネットワーク、ポートマッピング、コピーの数を、記憶含みます。
いつものように、サービスが特定のシーンに⾯する必要が放つ、典型的なWebサービスは、それを適用するために、バックエンド、それを適用するためのフロントエンドが含まれ、およびデータベースも⼀として。これらを使用すると、カテゴリ管理サービスに属している必要があります。
サービスの群れも(-modeで指定することができる)クラスタの二種類に分けられます。
- レプリケーションサービス(複製されたサービス)モード:デフォルトモードは、各タスクは、クラスタ内であれば、ドライコピーが存在しますが、これらのコピーは、スケジューリングポリシーに従って、クラスタ内のノードとして管理対象ノード⼯に配布されます。--Replicasは、このパラメータ設定モードのコピーの数を使用することができます。
- グローバル・サービス(グローバルサービス)モード:スケジューラは、利用可能なノードのそれぞれで、それを同じタスクを実行する必要があります。チェックノードを実行するときに監視するためにそれを適用する、となるように、このモードが適しています。
タスク
スウォームの使命は、最も小さいサイズのディスパッチユニット、すなわち⼀の容器を使用しなければなら指定をクラスタ化することです。例えば、コンテナのフロントエンドのフロントエンドは、ビジネスを実行している場合のみ。タスクから(RUNNING)を実行するときに⽣ライフサイクルは準備(準備)、(ACCEPTED)受け入れられ、作成中(NEW)も(PENDING)を待って、ディストリビューション(割り当てられている)こと、(STARTING)を開始します(完全)完成し、 (失敗)、クローズ(SHUTDOWN)、(拒否)拒否失敗し、すぐに(孤立)唯一の注意異なる状態などが挙げられます。
スケジュール要件に従ってスウォームクラスタ管理ノードは⼯ノードを作るためにタスクを割り当てます。例えば、指定された2つのコピーが、確実に行わ動作する2つの異なるノードに割り当てられてもよいです。タスクが割り当てられている一度際⼀⼯⼀ノードとして、すなわちスウォームのタスクは、移行をサポートしていない、ノードとして確実に機能するように別のものに転送することが動作不能になります。
外部からのアクセスを群れ
クラスタ外にアクセスするための群れのクラスタサービスは、個別の保証をマッピングする応答タスクを可能にすることができなければなりません。(入力負荷分散)マッピングモードをバランシング個別の保証のロードを開始し保持する⽀で群れ。このモードでは、各サービスは、個別の保証が公にアクセスできるクラスタ内の任意のノード上の別々の保証で終わる(PublishedPort)を、終了⼀割り当てられ、サービスのために予約されています。
要求がポートに送信されたときにノードが関連する実際のサービスを実行しない場合、任意のノードに開示⾏容器、⼯YES実際のサービスコンテナのノードに要求を転送する機構をルーティングすることによって。
ドッキングウィンドウの群れを使用
環境へのドッキングウィンドウのバージョン19.03は群れので、直接の使用を統合されています docker swarm
次のように構成され、3台のマシンを準備します。
- マネージャー:CentOS7 192.168.10.10 docker19.03
- WORK1:CentOS7 192.168.10.11 docker19.03
- WORK2:CentOS7 192.168.10.12 docker19.03
ドッキングウィンドウの群れのクラスタを作成します。
ドッカークラスタ操作コマンドは次のとおりです。
- INITを群れ:⼀管理ノードのクラスタを作成します。
- ノードリスト:クラスタ内のノードの情報を一覧表示します。
- 群れに参加:原因を充填既存のクラスタに新しいノード。
- 群れの更新:⼀スウォームクラスタを更新します。
- 群れ休暇:スウォームクラスタを⼀のまま。
1.群れのクラスタを作成します。
# docker swarm init
Swarm initialized: current node (64ziftvcc42jes9rjjln3gj3o) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-05ti4zj7p0jnhxl26m3tlk48aazl3ts3jkhari0c4oyaoxk1rb-bb3dkm45d9m0ikaoxuhgwtgve 192.168.10.10:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
2. 2つの作業ノードで次のコマンドを実行します。
# docker swarm join --token SWMTKN-1-05ti4zj7p0jnhxl26m3tlk48aazl3ts3jkhari0c4oyaoxk1rb-bb3dkm45d9m0ikaoxuhgwtgve 192.168.10.10:2377
これは、作成ドッキングウィンドウの群れクラスターを完了、または非常にシンプル
# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
64ziftvcc42jes9rjjln3gj3o * centos1 Ready Active Leader 19.03.1
60xwt9dr0znx5qnjhvjqj9c7w centos2 Ready Active 19.03.1
h7zaxx1bxzw33mp8ze6lumj4f centos3 Ready Active 19.03.1
ポート2377 CentOS7ファイアウォールが設定されていない場合、クラスタ・ノードのステータスがダウンすることができ、オフにするか、またはオープン注:
ドッキングウィンドウの群れのクラスタを使用します
コマンドを使用してクラスタを作成しdocker swarm [COMMAND]
、クラスタ管理を使用するにはdocker node [COMMAND]
、クラスタ管理サービスを使用するには、コマンドですdocker service [COMMAND]
。
1.サービスを作成します。
# docker service create --replicas 2 --name ping debian:jessie ping docker.com
skyaj8ukmi8t42c05qba3k6rm
overall progress: 2 out of 2 tasks
1/2: running [==================================================>]
2/2: running [==================================================>]
verify: Service converged
2.サービスを見ます
# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
skyaj8ukmi8t ping replicated 2/2 debian:jessie
# docker service ps ping
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
x02dsx5to2xq ping.1 debian:jessie centos1 Running Running about a minute ago
3od5f9rzjjzt ping.2 debian:jessie centos2 Running Running about a minute ago
# docker service inspect --pretty ping
ID: skyaj8ukmi8t42c05qba3k6rm
Name: ping
Service Mode: Replicated
Replicas: 2
Placement:
UpdateConfig:
Parallelism: 1
On failure: pause
Monitoring Period: 5s
Max failure ratio: 0
Update order: stop-first
RollbackConfig:
Parallelism: 1
On failure: pause
Monitoring Period: 5s
Max failure ratio: 0
Rollback order: stop-first
ContainerSpec:
Image: debian:jessie@sha256:c72197393c39c05e19c8ef3388af53a6daa2baa0bed6111b09e40a298d9f7eca
Args: ping docker.com
Init: false
Resources:
Endpoint Mode: vi
3.サービスを展開
# docker service scale ping=1
ping scaled to 1
overall progress: 1 out of 1 tasks
1/1: running [==================================================>]
verify: Service converged
# docker service scale ping=3
ping scaled to 3
overall progress: 3 out of 3 tasks
1/3: running [==================================================>]
2/3: running [==================================================>]
3/3: running [==================================================>]
verify: Service converged
4.外部ポート
# docker service create --replicas 2 --name nginx -p 8080:80 nginx
若しくは
# docker service create --replicas 2 --name nginx --publish published=8080,target=80 nginx
注:ドッキングウィンドウ内部の群れは、負荷分散を持ち、アクセスアドレスは、クラスタ内の任意のノードを群れのノードがサービスを実行していない場合であっても、有効です。
5.serviceサブコマンド
群れノードマネージャ
受注管理群れのクラスタノードdocker node
以下のオプションをサポートしています
- 降格:管理ノードにワーキングノードからの切り替え
- 検査:ビューのノード
- LS:すべての出力ノード
- 宣伝:管理ノードに作業ノードからの切り替え
- 出力ノード上の求人情報:PS
- RM:クラスタからノードを削除
- 更新:更新ノード情報
マルチタスクの群れの展開
我々は以前、エンジンが今同じエネルギーに統合されドッカー複数の容器でそれを展開するだけでなく、群れのクラスタ環境で複数のタスクを展開する、ドッキングウィンドウ-コンを使用していました。
コマンドdocker stack [command]
コマンドには、次のオプションをサポートします。
- 展開:スタックを展開
- LS:すべてのスタック出力
- PS:出力スタックタスク
- RM:スタックを削除
- サービス:全てのサービスでの出力スタック
1.ドッキングウィンドウ-compose.ymlを作成します。
ドッキングウィンドウスタックを直接ドッキングウィンドウ・コン形式の構成ファイルをサポート
version: "3"
services:
nginx:
image: nginx:latest
ports:
- 8088:80
deploy:
mode: replicated
replicas: 4
2.展開スタック
# docker stack deploy -c docker-compose.yml web
Creating service web_nginx
# docker stack ls
NAME SERVICES ORCHESTRATOR
web 1 Swarm
# docker stack ps web
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
q34tk96cssvp web_nginx.1 nginx:latest centos1 Running Running 6 seconds ago
k6p4iol3vs0v web_nginx.2 nginx:latest centos2 Running Running 7 seconds ago
hen5phupzow4 web_nginx.3 nginx:latest centos2 Running Running 7 seconds ago
ugr8sgg6lpv9 web_nginx.4 nginx:latest centos3 Running Running 6 seconds ago
# docker stack services web
ID NAME MODE REPLICAS IMAGE PORTS
hf5dbvn0a8ww web_nginx replicated 4/4 nginx:latest *:8088->80/tcp
3.スタックを削除します
# docker stack rm web
Removing service web_nginx
Removing network web_default