Dockersとコンテナーは初めてです。私はドッカーのチュートリアルを行っていて、この情報に出くわしました。 https://docs.docker.com/get-started/part3/#docker-composeyml
networks:
- webnet
networks:
webnet:
ウェブネットとは?文書は言う
Webnetと呼ばれる負荷分散ネットワークを介してポート80を共有するようにWebのコンテナに指示します。 (内部的には、コンテナ自体が一時ポートでウェブのポート80に公開されます)。
では、デフォルトでは、オーバーレイネットワークはDockerクラスターで負荷分散されていますか?使用されている負荷分散アルゴリズムとは何ですか?
実際、オーバーレイネットワークにロードバランシングがあるのはなぜかはわかりません。
私はドキュメントよりも明確であるかどうかはわかりませんが、言い換えれば役立つかもしれません。
まず、ここでフォローしているドキュメントは、 swarm mode
ドッカーの。
とは - swarm mode
?
スウォームは、サービスをデプロイするDockerエンジンまたはノードのクラスターです。 Docker Engine CLIおよびAPIには、スウォームノードの管理(ノードの追加や削除など)、およびスウォーム全体でのサービスのデプロイとオーケストレーションのためのコマンドが含まれています。
SOドキュメントから:
スウォームは、サービスをまとめてデプロイする多数のDockerエンジン(またはノード)です。 Swarmは、多くの物理マシン、仮想マシン、またはクラウドマシンに処理を分散するために使用されます。
したがって、スウォームモードでは、マルチホスト(VMおよび/または物理)クラスタ、つまり docker engine
。
Q1。 Webnetとは
webnet
は、スタックの起動時に作成される overlay network の名前です。
オーバーレイネットワークは、スウォームに参加しているDockerデーモン間の通信を管理します
マシンのクラスターでは、仮想ネットワークが作成されます。各サービスにはipがあり、内部DNSエントリー(サービス名)にマップされており、Dockerが着信パケットを群れのすべての場所の適切なコンテナーにルーティングできるようにします(集まる)。
Q2。したがって、デフォルトでは、オーバーレイネットワークはDockerクラスターで負荷分散されますか?
はい、オーバーレイネットワークを使用している場合は、サービスnetworks
構成を削除してバイパスすることもできます。次に、公開するサービスのポートを publish にする必要があります。
Q3。使用される負荷分散アルゴリズムとは何ですか?
これから SO質問 スウォームマスターが回答 bmitch ;):
アルゴリズムは現在ラウンドロビンであり、プラグイン可能であることを示す兆候はまだありません。より高いレベルのロードバランサーを使用すると、スウォームノードをメンテナンスのために停止できますが、スウォームモードのラウンドロビンアルゴリズムによって、スティッキーセッションやその他のルーティング機能が取り消されます。
Q4。実際、オーバーレイネットワークに負荷分散があるのはなぜですか
Docker swarmモード/サービスの目的は、replicatedサービスのオーケストレーションを許可することです。つまり、スウォームにデプロイされたコンテナーをスケールアップ/スケールダウンできます。
再び docs から:
スウォームモードには、スウォーム内の各サービスをDNSエントリに自動的に割り当てる内部DNSコンポーネントがあります。 Swarm Managerは、内部負荷分散を使用して、サービスのDNS名に基づいてクラスター内のサービス間でリクエストを分散します。
したがって、プライベートネットワークのDNSエントリやポート構成などを処理せずに、10個のまったく同じコンテナ(アプリケーションhtml/jsを使用してnginxとしましょう)をデプロイできます。受信リクエストは、参加しているホストに自動的に負荷分散されます群れ。
お役に立てれば!