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 にアップグレードする方法と手順
ファイルシステムとは何かInnoDB や MyIASM などのストレージ エンジンはテーブルをディス...
目次ガベージコレクション (GC) はなぜ必要なのでしょうか?ガベージコレクションとは廃棄物の発生ガ...
赤い封筒の揺れ効果を実現するには要件があります。これまでやったことがないので、記録しておきます。ヘヘ...
最近、問題のある新しい SQL が本番データベースに入力される数を最小限に抑えるために、開発仕様を整...
目次概要オブジェクトの残り属性オブジェクトの拡張プロパティオブジェクトの浅いコピーを作成するkeyo...
CSS ファイルでは、フォント名が文字化けしていることがよくあります。これは、作成者が中国語フォン...
Linux で実行可能プログラムまたは so の依存ライブラリを表示します。 Linux の実行可能...
目次1. ファイルを開くパラメータの紹介2. ファイルの読み取り3. ファイルを書き込む4. 閉じる...
Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....
目次1. 三項演算子の判定2. 動的に設定されるクラス3. 方法判定4. 配列バインディング5. e...
序文nginx はマルチプロセス モデルを使用します。リクエストが届くと、システムはプロセスをロック...
Linux には、マウントされたハードディスクとマウントされていないハードディスクの 2 種類のハー...
目次Tomcat の紹介Tomcat の展開Web プロジェクトの作成tomcatの設定プロジェクト...
ステップ1: MySQL YUMソースを取得するMySQLの公式サイトにアクセスして、RPMパッケー...
<iframe src="./ads_top_tian.html" all...