「docker 1.12.0」バージョンからswarmが組み込まれています; swarmはdockerクラスタを管理するためのプラットフォームであり、go言語を使用して開発されています 「1.12.0」バージョンから, 「Docker Swarm」には、Docker エンジンにサービス検出ツールが組み込まれているため、サービス検出の設定に Etcd や Consul を設定する必要はありません。
このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。
Swarm は、Docker クラスターを管理するために Docker によって起動されたプラットフォームです。ほとんどすべての開発は GO 言語で行われます
Docker Swarm とDocker Compose は Docker の公式コンテナ オーケストレーション プロジェクトと同じですが、違いは、Docker Compose が単一のサーバーまたはホスト上に複数のコンテナを作成するツールであるのに対し、Docker Swarm は複数のサーバーまたはホスト上にコンテナ クラスター サービスを作成できることです。マイクロサービスのデプロイメントには、明らかに Docker Swarm の方が適しています。
Docker 1.12.0 バージョン以降、Docker Swarm は Docker エンジン (docker swarm) に含まれており、サービス検出ツールが組み込まれています。 Consul はサービス検出構成に使用されます。
上の図からわかるように、Swarm は典型的なマスター/スレーブ構造であり、サービスを検出することでマネージャーを選出します。マネージャーは中央管理ノードです。エージェントは各ノードで実行され、マネージャーの統合管理を受け入れます。クラスターは、追加の検出サービス サポートを必要とせずに、Raft プロトコルを通じて分散方式でマネージャー ノードを自動的に選択し、シングルポイントを回避しますまた、DNS 負荷分散機能も組み込まれており、外部負荷分散メカニズムの統合サポートも備えています。
拡張知識
Docker Swarm の動作原理
1) Docker エンジン クライアント
docker service create: docker service create を使用します。このコマンドはサービスを作成します。
2) swarm マネージャー
API: このリクエストは、Swarm マネージャーの API によって直接受信され、コマンドを受け取り、サービス オブジェクトを作成します。
オーケストレーター: サービスのタスクを作成します。
allocator: このタスクに IP アドレスを割り当てます。
ディスパッチャ: 指定されたノードにタスクを割り当てます。
scheduler: 指定されたコマンドをノードに発行します。
3) ワーカーノード: マネージャータスクを受信後、タスクを実行します。
コンテナ: 対応するコンテナを作成します。
worker: スケジューラに接続して、割り当てられたタスクを確認します。
executor: ワーカー ノードに割り当てられたタスクを実行します。
Service: はコピーであり、次のように理解できます。タスク、タスクはコンテナです。
swarm マネージャー: このコピーを 3 つの利用可能な作業ノードに配布します。
container: アプリケーションを実行する実際の Docker コンテナ。
task: 作業タスクの名前は、サービス名の後に番号に応じた .1 などが付加されたものです。
推奨学習: 「docker ビデオ チュートリアル 」
以上がswarm が組み込まれている Docker のバージョンはどれですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。