1. Docker Swarm とは何ですか? Docker Swarm は、Docker が公式に提供するクラスター管理ツールです。その主な機能は、複数の Docker ホストを 1 つに抽象化し、これらの Docker ホスト上のさまざまな Docker リソースを統一された入口から管理することです。 Swarm は Kubernetes に似ていますが、Kubernetes よりも軽量で機能も少ないです。 Docker Swarm は、Docker Compose と同様に、Docker の公式コンテナ オーケストレーション プロジェクトです。違いは、Docker Compose が単一のサーバーまたはホスト上に複数のコンテナを作成するためのツールであるのに対し、Docker Swarm は複数のサーバーまたはホスト上にコンテナ クラスター サービスを作成できることです。マイクロサービスの展開には、明らかに Docker Swarm の方が適しています。 Docker 1.12.0 以降では、Docker エンジン (docker swarm) に Docker Swarm が組み込まれ、サービス検出ツールが組み込まれました。以前のようにサービス検出のために Etcd や Consul を設定する必要がなくなりました。 2. Docker Swarmアーキテクチャ この図全体は、実際にはいわゆるクラスター内にあり、1 つ以上の実際のサーバーに対応する場合があります。各サーバーに Docker がインストールされ、HTTP ベースの Docker API が有効になっています。このクラスターには、クラスター内のコンテナ リソースを管理するために使用される SwarmManager マネージャーがあります。マネージャーの管理対象はサーバーレベルではなく、クラスターレベルです。つまり、マネージャーを通じてクラスターに一般的な指示を出すことはできますが、特定のサーバーで何を行うかを指定することはできません (これも Swarm の本質です)。具体的な管理の実装方法としては、Manager が HTTP インターフェースを外部に公開し、外部のユーザーがこの HTTP インターフェースを通じてクラスターを管理します。少し大きいクラスターの場合は、専用のマネージャーとして実際のサーバーを用意するのが最適です。学習目的で、マネージャーと管理対象を同じサーバーに配置することもできます。 3. Docker Swarmサービスのローリングアップデート Docker Swarm はスムーズなサービス アップグレードを実現できます。つまり、ダウンタイムなしでサービスが更新され、クライアントはそれを認識しません。具体的な例を通してこれを説明しましょう。ここでは、ノード に nginx ベースの Web アプリケーション サービスをデプロイします。同じアプリケーションの2つのバージョン(バージョン1とバージョン2)を作成します。 Dockerfile を作成し、docker build を使用してコンパイルします。 nginxから RUN echo '<h1>Swarm:バージョン 1 <h1>' > /usr/share/nginx/html/index.html 注: Swarm クラスター内のすべてのノードがイメージにアクセスできるようにするために、生成されたイメージを独自のイメージ リポジトリにアップロードします。 dockerログイン ビルドは docker によって実行されます。 docker push collenzhao/mynginx:v1 Swarmサービスを作成する、つまりイメージを介してコンテナを起動する docker サービス作成 -p 7788:80 --replicas 3 --name myswarmtest collenzhao/mynginx:v1 docker service ls を使用してデプロイされたサービスを表示します。 docker service ps myswarmtest を通じてデプロイされたサービスの詳細情報を表示します。 効果は下の図に示されています 以前のDockerfileを更新します。バージョン番号が2になることに注意してください。 nginxから RUN echo '<h1>Swarm:バージョン 2 <h1>' > /usr/share/nginx/html/index.html docker buildを使用してコンパイルする ビルドは docker によって実行されます。 Docker push を使用して Docker Hub にアップロードする docker push collenzhao/mynginx:v2 以前にSwarmにデプロイされたサービスを更新すると、バージョン番号は2になります docker サービス更新 --image collenzhao/mynginx:v2 myswarmtest 効果は以下のとおりです これで、Docker Swarm でサービスのローリング アップデートを実装するためのサンプル コードに関するこの記事は終了です。Docker Swarm のローリング アップデートの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySql5.x を MySql8.x にアップグレードする方法と手順
序文MySQL データベースでは、if else のような判断演算を使用することがあります。では、M...
このセクションでは、テキストの変更の詳細から始めます。これにより、読者はさまざまな HTML フォン...
背景:最近、同社のプロジェクトは同時実行のプレッシャーに耐えられないようなので、最適化が差し迫ってい...
目次1. JavaScriptを使用してQRコードを解析する1. QR コードとは何ですか? 2.q...
1. フレームセット、フレーム、iframeを使用して複数のウィンドウを実現する2. 画像上のマッ...
実際の開発環境や本番環境では、コンテナを独立して実行することはあまりなく、複数のコンテナを一緒に実行...
目次序文1. クロージャとは何ですか? 1.1 クロージャは条件コードを満たす1.2 クロージャ生成...
このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルでのみサポートされているため、IEカ...
Docker は、あらゆるアプリケーション用の軽量でポータブルな自己完結型コンテナーを簡単に作成で...
この記事では、例を使用して、MySQL マスター/スレーブ レプリケーションと読み取り/書き込み分離...
Tomcat サーバーは、無料でオープン ソースの Web アプリケーション サーバーです。軽量のア...
1. どのような問題に直面しましたか?標準 SQL では、通常、次の SQL 挿入ステートメントを記...
開発環境ウィンドウ開発ツール Visual Studio Codeノードのインストールとnpm Wi...
GitHubアドレス、気に入ったらスターを付けてくださいプラグインのプレビューチュートリアル1. プ...
1. 実験の説明仮想マシンに、 Ubuntu 19.04オペレーティングシステムを手動でインストー...