docker において、クラスターとは、docker を実行している複数のマシンがグループに参加したグループであり、連携して動作するサービス エンティティのグループです。クラスターは、単一のサービス エンティティよりもスケーラブルで可用性の高いサービス プラットフォームを提供するために使用されます。クラスターに参加した後は、引き続き独自の docker コマンドを実行できますが、これらのマシンはクラスター マネージャーによってクラスター上で実行されるようになります。また、クラスター マネージャーはさまざまなポリシーを使用して、実行中のコンテナーを管理できます。
このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。
クラスターとは、docker を実行し、グループに参加している複数のマシンのグループです。
クラスターに参加した後も、引き続き独自の docker コマンドを実行できますが、これらのマシンはクラスター マネージャーによってクラスター上で実行されるようになります。クラスター内のマシンは物理マシンまたは仮想マシンにすることができ、グループに参加した後の各マシンはノードと呼ばれます。
クラスター マネージャーは、実行中のコンテナーを管理するためにさまざまな戦略を使用できます。たとえば、空のノード コマンドを使用して、最も使用率の低いコンテナーを埋めます。グローバルでは、各マシンが指定されたコンテナーのインスタンスを 1 つだけ取得できるようにします。これらのポリシーをファイルに書き込んで、クラスター マネージャーのポリシーを適用できます。
クラスター マネージャーは、クラスター内でコマンドを実行できる唯一のマシンです。他のマシンがクラスター管理作業に参加することを許可することもできます。
クラスターは、単一のサービス エンティティよりも拡張性と可用性が高いサービス プラットフォームを提供するために連携して動作するサービス エンティティ (サーバーとして理解できます) のグループです。クライアントの観点からは、クラスターはサービス エンティティのように見えますが、実際にはクラスターは一連のサービス エンティティで構成されます。
拡張知識
Docker クラスター サービスでは、次の概念を理解する必要があります。
Swarm
Swarm は、Docker Engine を実行する複数のホストのクラスターです。
v1.12 から、クラスター管理およびオーケストレーション機能が Docker Engine に統合されました。 Docker Engine が Swarm を初期化するか、既存の Swarm に参加すると、Swarm モードが開始されます。
Swarm モードが開始されていない場合、Docker はコンテナ コマンドを実行します。Swarm モードの実行後、Docker はサービスを調整する機能を強化します。 Docker を使用すると、Swarm Service と個別のコンテナの両方を同じ Docker ホスト上で実行できます。
node
Swarm の各 Docker エンジンはノードであり、マネージャーとワーカーの 2 種類のノードがあります。
アプリケーションを Swarm にデプロイするには、マネージャー ノードでデプロイメント コマンドを実行する必要があります。マネージャー ノードはデプロイメント タスクを分解し、1 つ以上のワーカー ノードに割り当ててデプロイメントを完了します。
マネージャー ノードは、オーケストレーションとクラスター管理作業を実行し、Swarm を望ましい状態に維持および維持する責任があります。 Swarm に複数のマネージャー ノードがある場合、それらは自動的にネゴシエートし、オーケストレーション タスクを実行するリーダーを選出します。
ワーカー ノードは、マネージャー ノードによってディスパッチされたタスクを受け入れて実行します。デフォルト構成では、マネージャー ノードはワーカー ノードでもありますが、オーケストレーションとクラスター管理を担当するマネージャー専用ノードとして構成できます。
ワーク ノードは、自身のステータスと実行中のタスクのステータスをマネージャー ノードに定期的に報告するため、マネージャーはクラスター全体のステータスを維持できます。
service
service は、ワーカー ノードで実行されるタスクを定義します。 swarm の主なオーケストレーション タスクは、サービスが望ましい状態であることを確認することです。
サービスの例を示します。swarm で nginx サービスを開始し、イメージ nginx:latest を使用し、コピー数は 3 です。
マネージャー ノードは、このサービスの作成を担当します。分析後、3 つの nginx コンテナーを開始する必要があることがわかりました。コンテナーを実行するタスクは、各ワーカー ノードの現在のステータスに従って割り当てられます。たとえば、2 つのコンテナが worker1 で実行され、1 つのコンテナが worker2 で実行されます。
一定期間実行した後、worker2 が突然クラッシュしました。マネージャーはこの障害を監視し、すぐに worker3 で新しい nginx コンテナを開始しました。これにより、サービスが目的の 3 つのレプリカ状態になることが保証されます。
つまり、swarm はノードの形式でクラスターを編成します。同時に、1 つ以上のサービスを各ノードにデプロイでき、各サービスには 1 つ以上のコンテナー (コンテナー) を含めることができます。
推奨される学習: 「docker ビデオ チュートリアル 」
以上がdocker クラスターとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。