基本的な操作からドッカースウォームを展開します

ドッカースウォームについて

ドッカースウォームは、2つの部分から成ります:

  1. ドッカークラスター:ドッカーを組織し、1つまたは複数のノードは、ユーザーがクラスタ内で管理することができます。
  2. アプリケーション振り付け:コンテナを展開し、管理するために使用されるAPIのセット。

公式情報ます。https://docs.docker.com/swarm/

ネットワークダイアグラム

図は、ドッカーの公式サイトから、典型的なドッカースウォームクラスタの展開図である:
ここに画像を挿入説明
ドッカースウォームクラスタを構築する計画に輝い次。

準備

戦闘は、5台のマシン、同じコンフィギュレーション情報の全て次のように合計を使用します。

  1. オペレーティングシステム:CentOSのLinuxは1810年6月7日にリリース
  2. ドッカーServicesバージョン:1.13.1
  3. ファイアウォールは閉鎖されています。

次の表のマシン情報:
| IPアドレス|ホスト名|アイデンティティ|
| - | - | - |
| 192.168.121.142 | M0 |管理ノード|
| 192.168.121.139 | M1 |管理ノード|
| 192.168。 121.140 |平方メートル|管理ノード|
| 192.168.121.141 | W0 | |作業員は、ノード
| 192.168.121.138 | W1 |ワーカーノードを|

なぜ3つの管理ノード?

このように、管理ノードの高可用性(HA)を確保ラフトコンセンサスアルゴリズムを使用して、管理ノードクラスタ間の内部管理コーディネーションから見た公式マップは、一般的に以下の2つの原則を参照します。

  1. スプリットブレインを減らすのに役立ちます展開奇数管理ノード;
  2. 複数の管理ノードは、それがコンセンサスに到達するために多くの時間を要することを意味するので、あまりにも多くの管理ノードを展開しないでください。

クラスタのステップを展開するはじめに

全体のプロセスの次の展開は、次のステップに分かれています。

  1. 第一の管理ノード(M0)を初期化します。
  2. 新しい管理ノード(M1、M2)を追加します。
  3. 追加ノードを作動(W0、W1)。

そして、それが開始しました。

第一の管理ノード(M0)を初期化します

  1. M0ノードのIPアドレスである192.168.121.142、したがってM0ノードで次のコマンドを実行します。
docker swarm init \
--advertise-addr 192.168.121.142:2377
--listen-addr 192.168.121.142:2377

addr-宣伝と聞く-ADDRこれら2つのパラメータ、前者は交通IPとポートベアラ指定群れM0に接続された他のノードのアドレスを指定するために使用され、彼らは、より詳細で、徹底的な違いの記事を参照することができます。https:/ /boxboat.com/2016/08/17/whats-docker-swarm-advertise-addr/

  1. 次のようにコンソールが成功した初期化スウォームクラスタを示す情報を返します。
Swarm initialized: current node (7585zt09o2sat82maef0ocf42) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-5huefb5501cv7p8i2op1am2oevasoqu4te8vpvapndkudvszb4-e8l6755jstd7urpdo5smyi8fv \
    192.168.121.142:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
  1. すべてのクラスタノードが現在のスウォームにリストされている、あなたは、固有のノードM0のステータスとIDを見ることができます。
[root@m0 ~]# docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
7585zt09o2sat82maef0ocf42 *  m0        Ready   Active        Leader

今クラスタは、我々はより多くの管理ノードとワーカーノードを追加する必要があり、その後、確立されています。

新しいノードを追加するには?

  1. ドッカースウォームの戦略は、新しいノードが管理ノードからのコマンドの長いリストを結合取得することであるトークン参加と呼ばれる、限り、彼らは群れのクラスタに参加するトークンの参加を行うようマシンのクラスタに参加したい人。
  2. 新しい管理ノードを追加する必要がある場合は、M0実行ドッキングウィンドウの群れが参加し、トークンマネージャトークン管理ノードに参加得るために、次のように:
[root@m0 ~]# docker swarm join-token manager
To add a manager to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-5huefb5501cv7p8i2op1am2oevasoqu4te8vpvapndkudvszb4-5tz9d4w7nwzu8r4ozd0ff2aiu \
    192.168.121.142:2377
  1. ファイル名を指定して実行M0で、新しい作業ノードを追加する必要性がある場合はドッキングウィンドウの群れに参加トークン労働者を取得するために、次のように仕事のノードは、トークン参加します:
[root@m0 ~]# docker swarm join-token worker
To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-5huefb5501cv7p8i2op1am2oevasoqu4te8vpvapndkudvszb4-e8l6755jstd7urpdo5smyi8fv \
    192.168.121.142:2377

二種類のトークンに参加し、準備ができている、新しいノードの追加を開始。

追加した管理ノードM1、M2

  1. 管理ノードm1の実装に作られたフロントは、トークンに参加します:
[root@m1 ~]# docker swarm join \
>     --token SWMTKN-1-5huefb5501cv7p8i2op1am2oevasoqu4te8vpvapndkudvszb4-5tz9d4w7nwzu8r4ozd0ff2aiu \
>     192.168.121.142:2377
This node joined a swarm as a manager.
  1. 平方メートルで同じ操作を行います。
  2. M0、M1、RenyiyitaiコマンドM2で実行ドッカーノードLSは以下に示すように、群発クラスタの状態を表示、我々は3つの管理ノードが正常状態である見ることができ、IDフィールドは、アスタリスクサフィックスが付いマシンが現在のコマンドを実行していることを示しM1:
[root@m1 ~]# docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
0isfyre69mdu1hm11esf1q3dk    m2        Ready   Active        Reachable
7585zt09o2sat82maef0ocf42    m0        Ready   Active        Leader
slc0hjbs7jh2hdi8ai3wohy23 *  m1        Ready   Active        Reachable

作業ノードW0、W1に参加

  1. W0で以前に取得されたノードの実装は、トークンに参加します:
[root@w0 ~]# docker swarm join \
>     --token SWMTKN-1-5huefb5501cv7p8i2op1am2oevasoqu4te8vpvapndkudvszb4-e8l6755jstd7urpdo5smyi8fv \
>     192.168.121.142:2377
This node joined a swarm as a worker.
  1. W1で同じ操作を行います。
  2. M0、M1、M2上のコマンドを実行しているRenyiyitai ドッカノードlsのステータスを表示スウォームのクラスタ・ノードのすべての準備ができて見て仕事を持っています:
[root@m0 ~]# docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
0isfyre69mdu1hm11esf1q3dk    m2        Ready   Active        Reachable
7585zt09o2sat82maef0ocf42 *  m0        Ready   Active        Leader
i71bcxt1auc804syybroajtan    w1        Ready   Active        
slc0hjbs7jh2hdi8ai3wohy23    m1        Ready   Active        Reachable
wqcwcccva3d3mxgi5p423d4fv    w0        Ready   Active

これまでのところ、設定スウォームクラスタ環境が完了し、次を確認することができます。

スウォームクラスタ環境を確認してください

  1. Tomcatのネットオーバーレイ・ネットワーク(オーバーレイNetowork)という名前のファイルを作成し、これはレイヤ2ネットワークで、ネットワーク内のドッキングウィンドウのコンテナに、ホストが同じでない場合であっても、彼らはお互いを訪問することができます。
docker network create -d overlay tomcat-net
  1. 作成したオーバーレイネットワークを使用してTomcatのと呼ばれるサービスを作成します。
docker service create --name tomcat \
--network tomcat-net \
-p 8080:8080 \
--replicas 3 \
tomcat:7.0.96-jdk8-openjdk
  1. 実行ドッカサービスLSは、現在のすべてのサービスを見ます:
[root@m0 ~]# docker service ls
ID            NAME    MODE        REPLICAS  IMAGE
kguawc4b5th4  tomcat  replicated  3/3       tomcat:7.0.96-jdk8-openjdk
  1. 実行ドッカサービスのPS Tomcatの 3個のコンテナを示すのTomcatと呼ばれるビューのサービスは、M0、M2、W1のマシン上に配備されました。
[root@m0 ~]# docker service ps tomcat
ID            NAME      IMAGE                       NODE  DESIRED STATE  CURRENT STATE           ERROR  PORTS
n1gs9f1plce2  tomcat.1  tomcat:7.0.96-jdk8-openjdk  w1    Running        Running 19 minutes ago         
q8jyg088ci21  tomcat.2  tomcat:7.0.96-jdk8-openjdk  m2    Running        Running 19 minutes ago         
h9ww33dpw56m  tomcat.3  tomcat:7.0.96-jdk8-openjdk  m0    Running        Running 19 minutes ago
  1. 実行ドッカサービスは検査--pretty Tomcatのビューの詳細Tomcatの命名サービス(より完全なを見ることができ--prettyを削除します):
[root@m0 ~]# docker service inspect --pretty tomcat

ID:     kguawc4b5th4qlwlsv183qtai
Name:       tomcat
Service Mode:   Replicated
 Replicas:  3
Placement:
UpdateConfig:
 Parallelism:   1
 On failure:    pause
 Max failure ratio: 0
ContainerSpec:
 Image:     tomcat:7.0.96-jdk8-openjdk@sha256:91eadffb59d9a35ada2d39fcd616a749ac580aa5e834499b7128f27be2e46623
Resources:
Networks: tomcat-net 
Endpoint Mode:  vip
Ports:
 PublishedPort 8080
  Protocol = tcp
  TargetPort = 8080
  1. あなたが成功し、Tomcatのホーム・ページにアクセスすることができ、ブラウザを開き、8080 5機W1、M0、M1、M2、W0にアクセスしよう:
    ここに画像を挿入説明

    サービスモデル

  2. 2つのサービスモデルがあります:入力およびホスト、指定されていない場合、デフォルトはイングレスでは、
  3. イングレスモードでは、ポート8080のトラフィックは80ポートがマッピングされます、そのノード上のTomcatサービスのないコピーが存在しない場合でも、サービスのいずれかの内部コピーにマッピングされ、スウォームに任意のノードに到達します。
  4. 次のようにホストモードコマンドを使用してホストモード、コンテナのコピーと機械の操作にのみ開いているポート、:
docker service create --name tomcat \
--network tomcat-net \
--publish published=8080,target=8080,mode=host \
--replicas 3 \
tomcat:7.0.96-jdk8-openjdk

サービスのスケーラブルな能力

  1. 実行= 5ドッカサービススケールTomcatが 3から5にコピーの数を調整します。
[root@m0 ~]# docker service scale tomcat=5
tomcat scaled to 5
  1. 実行ドッカサービスのPS Tomcatのビュー・サービスは、各マシンの容器の分布を示す、Tomcatのと呼ばれます:
[root@m0 ~]# docker service ps tomcat
ID            NAME      IMAGE                       NODE  DESIRED STATE  CURRENT STATE               ERROR  PORTS
w32tjahze2fk  tomcat.1  tomcat:7.0.96-jdk8-openjdk  m2    Running        Running 42 minutes ago             
yj5czwwhrrsh  tomcat.2  tomcat:7.0.96-jdk8-openjdk  m0    Running        Running 42 minutes ago             
pq40995nbd0k  tomcat.3  tomcat:7.0.96-jdk8-openjdk  w1    Running        Running 42 minutes ago             
y1y6z1jczel1  tomcat.4  tomcat:7.0.96-jdk8-openjdk  m1    Running        Running about a minute ago         
w0dcii8f79os  tomcat.5  tomcat:7.0.96-jdk8-openjdk  w0    Running        Running about a minute ago

ローリング・アップグレード

  1. 現在のサービスのTomcat、Tomcatのミラータグがある7.0.96-jdk8-OpenJDKのは、のにアップグレードしてみましょう9.0.24-jdk11-OpenJDKの、次のコマンドを実行します。
docker service update \
--image tomcat:9.0.24-jdk11-openjdk \
--update-parallelism 1 \
--update-delay 10s tomcat

上記のコマンドは、いくつかあります注意してください。

。更新平行:各更新が、これは1に設定されているコンテナの数は、次にアップグレードする各アップグレードが成功した後、容器を示しています。

。B更新遅延:各バッチのアップグレード後、アップグレード前の時間の次のバッチを待って、成功し、アップグレード、など、10秒後、次のアップグレード容器を表します。

  1. アップグレード処理中のコマンドを実行しドッカサービスのPS Tomcatのサービスを表示し、あなたが一つのコンテナ1の新しいバージョンを開始する過程を見ることができます:
[root@m0 ~]# docker service ps tomcat
ID            NAME          IMAGE                        NODE  DESIRED STATE  CURRENT STATE                ERROR  PORTS
w32tjahze2fk  tomcat.1      tomcat:7.0.96-jdk8-openjdk   m2    Running        Running 56 minutes ago              
yj5czwwhrrsh  tomcat.2      tomcat:7.0.96-jdk8-openjdk   m0    Running        Running 56 minutes ago              
semuna9awsn7  tomcat.3      tomcat:9.0.24-jdk11-openjdk  w1    Running        Running 15 seconds ago              
pq40995nbd0k   \_ tomcat.3  tomcat:7.0.96-jdk8-openjdk   w1    Shutdown       Shutdown about a minute ago         
y1y6z1jczel1  tomcat.4      tomcat:7.0.96-jdk8-openjdk   m1    Running        Running 15 minutes ago              
oot3yex74v4t  tomcat.5      tomcat:9.0.24-jdk11-openjdk  w0    Running        Preparing 5 seconds ago             
w0dcii8f79os   \_ tomcat.5  tomcat:7.0.96-jdk8-openjdk   w0    Shutdown       Shutdown 3 seconds ago
  1. アップグレードが完了したら、サービスにアクセスするためにブラウザを使用し、目に見えるTomcatのバージョンがアップグレードされました:
    ここに画像を挿入説明

    サービスを削除します。

    実行ドッカサービスのRM Tomcatがサービスを削除するには:
[root@m0 ~]# docker service rm tomcat
tomcat
[root@m0 ~]# docker service ls
ID  NAME  MODE  REPLICAS  IMAGE

これまでのところ、基本的な操作からドッカー大群は、あなたが環境を設定したい場合、この記事はあなたにいくつかの参照を与えるだろう、一度体験して展開されています。

おすすめ

転載: www.cnblogs.com/bolingcavalry/p/11516368.html