Swarm クラスター管理 導入 Docker Swarm は Docker 用のクラスター管理ツールです。 Docker ホストのプールを単一の仮想 Docker ホストに変換します。 Docker Swarm は標準の Docker API を提供するため、Docker デーモンと既に通信しているツールであれば、Swarm を使用して複数のホストに簡単に拡張できます。 サポートされているツールには、以下のものが含まれますが、これらに限定されません。
原理 下の図に示すように、Swarm クラスターは管理ノード (マネージャー) とワーカーノード (ワークノード) で構成されます。
使用 以下の例はすべて Docker Machine と VirtualBox に基づいています。ホストに VirtualBox がインストールされていることを確認してください。 1. スウォームクラスタ管理ノード(マネージャー)を作成する Docker マシンを作成します。 $ docker-machine 作成 -d 仮想ボックス swarm-manager Swarm クラスターを初期化します。初期化を実行するマシンは、クラスターの管理ノードです。 $ docker-machine ssh swarm-manager $ docker swarm init --advertise-addr 192.168.99.107 #ここでの IP は、マシンの作成時に割り当てられた IP です。 上記の出力は初期化が成功したことを証明しています。作業ノードを追加するときに使用する次の行をコピーする必要があります。 docker swarm に参加 --token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377 2. スウォームクラスターワーカーノード(ワーカー)を作成する ここでは、swarm-worker1 と swarm-worker2 という 2 つのマシンを作成します。 2 台のマシンを個別に入力し、前の手順で作成したクラスターに追加することを指定します。ここでは、前の手順でコピーしたコンテンツが使用されます。 上記のデータ出力は、正常に追加されたことを示しています。 上の図では、前の手順でコピーしたコンテンツが比較的長いため、自動的に切り捨てられます。図で実際に実行されるコマンドは次のとおりです。 docker@swarm-worker1:~$ docker swarm join --token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377 3. クラスター情報を表示する 管理ノードに入り、docker info を実行して現在のクラスターの情報を表示します。 $ docker情報 4. クラスターにサービスをデプロイする 注: クラスター管理に関連するすべての操作は、管理ノードで実行されます。 次の例では、ワーカー ノードにランダムに割り当てられる helloworld という名前のサービスをワーカー ノードに作成します。 docker@swarm-manager:~$ docker サービス作成 --replicas 1 --name helloworld alpine ping docker.com 5. サービスの展開を確認する helloworld サービスがどのノードで実行されているかを確認すると、現在は swarm-worker1 ノードで実行されていることがわかります。 docker@swarm-manager:~$ docker サービス ps helloworld helloworld デプロイメントの詳細情報を表示します。 docker@swarm-manager:~$ docker service inspect --pretty helloworld 6. クラスターサービスの拡張 上記の helloworld サービスを 2 つのノードに拡張します。 docker@swarm-manager:~$ docker サービススケール helloworld=2 1つのノードから2つのノードに拡張されたことがわかります。 7. サービスの削除 docker@swarm-manager:~$ docker サービス rm helloworld 削除されたかどうかを確認します: 8. ローリングアップグレードサービス 次の例では、Redis のバージョンをより高いバージョンにローリングアップグレードする方法を紹介します。 Redis の 3.0.6 バージョンを作成します。 docker@swarm-manager:~$ docker サービス作成 --replicas 1 --name redis --update-delay 10s redis:3.0.6 Redis のローリング アップグレード。 docker@swarm-manager:~$ docker サービス更新 --image redis:3.0.7 redis 画像から、redis のバージョンが 3.0.6 から 3.0.7 にアップグレードされ、サービスが正常にアップグレードされたことがわかります。 9. ノードが新しいタスクを受信しないようにする すべてのノードを表示: docker@swarm-manager:~$ docker ノード ls すべてのノードが現在アクティブであり、新しいタスクの割り当てを受け取ることができることがわかります。 ノード swarm-worker1 を停止します。 注: swarm-worker1 の状態が Drain に変わります。クラスター サービスは影響を受けませんが、swarm-worker1 ノードは新しいタスクを受信しなくなり、クラスターの負荷容量は減少します。 次のコマンドでノードを再アクティブ化できます。 docker@swarm-manager:~$ docker ノード更新 --availability アクティブ swarm-worker1 Docker Swarm クラスター管理の使用方法と原理分析に関するこの記事はこれで終わりです。より関連性の高い Docker Swarm クラスター管理コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Vue シングルページ SEO の 4 つのソリューションについての簡単な説明
>>: MySQL 8.0.22 圧縮パッケージの完全なインストールと構成のチュートリアル図 (テスト済みで効果的)
導入2日前に見た問題について詳細に書きます。バイトコンピューターがバイナリに基づいていることは誰もが...
MySQL 5.7 をインストールするには 2 つの方法があります。1 つはインストーラをダウンロー...
目次1. はじめに2. インストール01. 新しい仮想マシンを作成する02. システムをインストール...
このキー属性の機能は何ですか?まずは公式の説明を見てみましょう。 kekey 属性は主に、新しいノー...
目次1. 結論から始めましょう2. キーの役割2.1 例2.2 上記の例を修正する2.3 例を再度修...
この記事では、例を使用して、MySQL で GROUP_CONCAT を使用する方法について説明しま...
この記事では、Vueの具体的なコードを共有して、シンプルなマーキー効果を実現しています。具体的な内容...
今日、MySQL をインストールすると次のエラー メッセージが表示されます。 かなり長い時間ネットで...
前回の記事 https://www.jb51.net/article/154153.htm では、B...
最近、仕事中に問題が発生しました。Docker コンテナがホストの redis にアクセスできず、t...
百度入力方式の担当者は、百度入力方式のオープンAPIの最大の利点は操作が便利であることであり、プラッ...
物理的に言えば、InnoDB テーブルは、共有テーブルスペース ファイル (ibdata1)、排他テ...
データを整理するためのリストWeb ページの表示を制御する多数の HTML タグを学習した後、読者は...
pre 要素は、フォーマット済みのテキストを定義します。 pre 要素で囲まれたテキストでは、通常、...
結果 (完全なコードは下部にあります): 実装は難しくありませんが、繰り返しコードが多くなります。実...