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 にアップグレードする方法と手順
前の章では、1 つのテーブルからデータを読み取る方法を学習しました。これは比較的簡単ですが、実際のア...
複数行を超えるテキストをインターセプトするための HTML コードは次のとおりです。 HTML:コー...
コメントとメッセージはもともと、ウェブマスターがコミュニティと読者層を構築するための優れた手段でした...
多くの場合、bash スクリプト内またはスクリプト自体内で直接 sudo を使用してコマンドを実行す...
簡単な説明適切な読者: モバイル開発sqlite3 データを mysql に移行する場合、多くの構文...
図書館運営クエリ1.SHOW DATABASE; ----すべてのデータベースを照会する2. SHO...
1. MySQL アーキテクチャストレージ エンジンを紹介する前に、まずは MySQL アーキテクチ...
この記事では、主要な CSS ウェブサイトで推奨されている 20 個の便利なルールとベスト プラクテ...
MTR は Mini-Transaction の略です。名前が示すように、これは「最小のトランザクシ...
目次1. Promiseとは何か2. 基本的な使い方3. Promiseメソッド3.1 Promis...
目次序文webpack-deb サーバーwebpack-dev-server 起動エラー解決策1解決...
1. MySQL 5.7.11 zipインストールパッケージをダウンロードするこのマシンはwin7 ...
エラーメッセージ:ユーザー: 'root' ホスト: `localhost'...
目次行と列の変換トランスクリプトの構成を分析するvue3 + el-table で作成されたトランス...
なお、これはvue-cliで作成したプロジェクトではありません。vue.jsを参照して記述したHTM...