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 にアップグレードする方法と手順
一般的なアプリケーションでは、timestamp、datetime、int 型を使用して時間形式を保...
目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...
mysql 8.0.20 winx64.zip圧縮版のインストールチュートリアルは以下のように記録さ...
私はデータベースツールとして Navicat を使用しています。他のものも同様です。 1. Navi...
参考: MySQL 文字セットの概要utf8mb4 は MySQL 8.0 のデフォルトの文字セット...
目次1. データベースの制約1.1 はじめに1.2 制約の種類1.3 ヌルでない1.4 ユニーク1....
一部の MySQL テーブルには重複レコードが含まれている場合があります。重複データが存在することを...
友人たちはいつも、Linux のプロセスを隠す方法を私に尋ねます。私は、どの程度隠したいのか、カーネ...
通常、デッドロックが発生すると、重みが最も小さい接続が強制終了され、ロールバックされます。ただし、最...
問題の説明最近、いくつかのマシンで、一日のさまざまな時間に次の警告メッセージが表示されました。 3月...
序文: MySQL データベースは、よく使用される集計関数、日付および文字列処理関数など、幅広い関数...
この記事では、動的な点と線の効果を実現するためのJavaScriptキャンバスの具体的なコードを参考...
困り果てて、ふと、私がよく行くSinaのタッチスクリーン版はどうやって作られているのだろう?と考えま...
以前作成されたデータベースの ogg プロセスは、発見されるまでの約半月間ダウンしていました。起動で...
背景位置が背景画像の表示に与える影響この2日間のプロジェクトでホームページの写真を入れ替えていたとこ...