ドッキングウィンドウの研究ノート8ドッカースウォームクラスタのセットアップ

序文

どのように局部的に説明し、以前の記事では、それがされていますDocker Machineドッカー仮想ホストを作成し、また、仮想ホストを作成することができ、それはまた、ローカルのWindowsで使用することができます。このセクションでは、ドッカー三銃士の1を学習していきます。Docker Swarm

ドッカースウォーム

ドッカードッカークラスの群発局所凝集は、それが仮想ホストドッカー別個ドッカーホストのセットに変換されます。標準ドッカーのAPIを使用してドッカースウォーム。ドッカーデーモンツールや複数のホストとの対話はスウォームを拡張に変換するために使用できるようにします。これは含まれています:

  • これは、ドッカーで構成します
  • ドッカーマシン
  • Dokku

ドッカースウォームサポートプラグアンドプレイの原則は、初期の開発、API開発者の最後で、それはプラグイン可能なバックエンドをサポートしています。箱から出して、あなたが交換スケジューリングに使用できることを、この手段は次のようにあなたをバックエンドに使用するドッカースウォームの準備ができてバックエンド。スウォーム切り替えスムーズ最も経験ボックスのユースケースを提供するように設計。

インストールドッカースウォーム

ドッカースウォームが実際にAであるので、私たちは、ミラーの公式ドッカースウォームでクラスタを作成することができます Docker images

docker run swarm --help


$ docker run swarm --help
Unable to find image 'swarm:latest' locally
latest: Pulling from library/swarm
d85c18077b82: Pull complete                                                                                             1e6bb16f8cb1: Pull complete                                                                                             85bac13497d7: Pull complete                                                                                             Digest: sha256:b866583a3b8791bcd705b7bc0fd94c66b695a1a2dbaeb5f59ed29940e5015dc8
Status: Downloaded newer image for swarm:latest
Usage: swarm [OPTIONS] COMMAND [arg...]

A Docker-native clustering system

Version: 1.2.9 (527a849)

Options:
  --debug                       debug mode [$DEBUG]
  --log-level, -l "info"        Log level (options: debug, info, warn, error, fatal, panic)
  --experimental                enable experimental features
  --help, -h                    show help
  --version, -v                 print the version

Commands:
  create, c     Create a cluster
  list, l       List nodes in a cluster
  manage, m     Manage a docker cluster
  join, j       Join a docker cluster
  help          Shows a list of commands or help for one command

Run 'swarm COMMAND --help' for more information on a command.

それは、鏡の最初の使用であるため、このイメージがあるかどうかを現在の環境ドッカーエンジンをチェックして、いない最新バージョンがローカルにプルアップ。

ミラーリングドッカースウォームを使用する利点

他の方法、そのスウォームミラーを使用する利点と比較すると

  • 追加の再利用のスウォームを必要としないシステム上で任意のバイナリをインストールします。
  • あなたは、ドッキングウィンドウエンジンで最新バージョンを入手することができます
  • スウォームの容器および環境。いいえ、別の保守ません

インタラクティブなコンテナでクラスタを作成します

クラスタは、管理ノードとワーカーノードを作成する必要があります。ここでのテストは、管理ノードを作成するクラスタを構成する管理ノードでの作業に二つのノードを追加します。

管理ノードを作成します。

docker-machine ls 既存の仮想ホストを見ます


$ docker-machine.exe ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER     ERRORS
default   *        virtualbox   Running   tcp://192.168.99.102:2376           v19.03.5

実際には、ホストが管理ホストとして使用することができ、実行中の仮想ホストを持っていることが判明しています

SSH接続管理ノードでは、最初の仮想マシンで管理ノードを作成します

docker-machine ssh default 仮想ホストに接続、オープンスウォーム


docker@default:~$ docker swarm init --advertise-addr 192.168.99.102
Swarm initialized: current node (5mohlisxbrkogfbtzk6nujkfw) is now a manager.

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

    docker swarm join --token SWMTKN-1-4k26snh9hpamnpdpyk4qqogeolf6ing4u6e35jkjpwx83v9xcp-f2rhw7i7p9p0jeesvwb81xb9i 192.168.99.102:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

docker swarm init --advertise-addr 192.168.99.102

ここではを通じて、仮想マシンので、アドレスを指定する必要がip address複数のネットワークカードを持っているので、私たちはアドレスを指定する必要があり、この仮想マシンで見つけることができます。

あなたはマスターノードを作成したら、それは我々がサービスノードを使用する必要性を作成する必要があるトークントークンこれまで得ることができます。

docker swarm join --token SWMTKN-1-4k26snh9hpamnpdpyk4qqogeolf6ing4u6e35jkjpwx83v9xcp-f2rhw7i7p9p0jeesvwb81xb9i 192.168.99.102:2377

実行docker info私たちは群れの現在の状態がすでにアクティブになって見つけることができ、管理ノード1


 Swarm: active
  NodeID: rzu7l3z4mysplwgdce8vj2364
  Is Manager: true
  ClusterID: uuq50bc4x4bckqfglkrj05vao
  Managers: 1
  Nodes: 1
  Default Address Pool: 10.0.0.0/8

docker node ls あなたは、現在のノードの情報を表示することができます


docker@default:~$ docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
5mohlisxbrkogfbtzk6nujkfw *   default             Ready               Active              Leader              19.03.5

作業ノードを作成します。

docker-machine create work1 デフォルトのVirtualBoxのVMの仮想ホストを作成します。

docker-machine ssh work1 仮想ホストを接続した後、管理ノードのノードに参加します

docker@work1:~$ docker swarm join --token SWMTKN-1-4k26snh9hpamnpdpyk4qqogeolf6ing4u6e35jkjpwx83v9xcp-f2rhw7i7p9p0jeesvwb81xb9i 192.168.99.102:2377
This node joined a swarm as a worker.

同様に、デフォルトに追加し、別のWORK2ノードを作成します。

情報管理ノード

現在のホストは、我々は、仮想ホスト状況のすべてを表示することができます。

$ docker-machine.exe ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER     ERRORS
default   *        virtualbox   Running   tcp://192.168.99.102:2376           v19.03.5
work1     -        virtualbox   Running   tcp://192.168.99.103:2376           v19.03.5
work2     -        virtualbox   Running   tcp://192.168.99.104:2376           v19.03.5

管理するホストに、あなたはノードを確認することができます。

docker@default:~$ docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
5mohlisxbrkogfbtzk6nujkfw *   default             Ready               Active              Leader              19.03.5
qqgd4abpjw08lwh31ddgez041     work1               Ready               Active                                  19.03.5
gblxw2whlxl0k94nmfozhs7gl     work2               Ready               Active                                  19.03.5

サービスとタスクの関係

  • サービスはタスクのセットで、サービスは、複数のタスクを持つことができます。
  • タスクは、ピングwww.baidu.comように、ユニット内部最小をクラスタ化することです

クラスタサービスの展開

docker-machine ssh default 管理ホストの接続


docker@default:~$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
c9b1b535fdd9: Pull complete                                                                                                                                                              Digest: sha256:ab00606a42621fb68f2ed6ad3c88be54397f981a7b70a79db3d1172b11c4367d
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest

引っ張るalpine linuxミラーを

アルパインは軽量Linuxディストリビューションのための安全なオペレーティングシステムです。それはMUSL libcのbusyboxのを使用して、アルパイン通常のLinuxディストリビューションとは異なり、システム規模や資源消費の実行時間を短縮するために

展開のタスク

ドッキングウィンドウのサービス作成[OPTIONS] IMAGE [COMMAND] [ARG ...]

docker service create --replicas 1  --name hello-world alpine ping www.baidu.com
  • --replicas タスクの数を指定します。
  • --name サービスの名前を指定します。
  • alpine 実行に名前のニーズをミラーリング
  • ping www.baidu.com ミラー内で実行されるコマンド

docker@default:~$ docker service create --replicas 1  --name hello-world alpine ping www.baidu.com
nzr66u3j32ndgzodw08cer1he
overall progress: 1 out of 1 tasks                                                                                                                                                       1/1: running[==================================================>]                                                                                                                     verify: Service converged   
        

共通コマンド

docker service ps <name> ビュー実行中のサービスだけでなく、進捗状況

docker@default:~$ docker service ps hello-world
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE           ERROR               PORTS
j03uhnoauhet        hello-world.1       alpine:latest       default             Running             Running 8 minutes ago

docker service ls 現在クラスタの群れで実行されているすべてのタスクを見ます

docker@default:~$ docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
nzr66u3j32nd        hello-world         replicated          1/1                 alpine:latest

監視サービス

docker service inspect --pretty hello-world コマンドは、サービスの動作の概要。


ID:             nzr66u3j32ndgzodw08cer1he
Name:           hello-world
Service Mode:   Replicated
 Replicas:      1
Placement:
UpdateConfig:
 Parallelism:   1
 On failure:    pause
 Monitoring Period: 5s
 Max failure ratio: 0
 Update order:      stop-first
RollbackConfig:
 Parallelism:   1
 On failure:    pause
 Monitoring Period: 5s
 Max failure ratio: 0
 Rollback order:    stop-first
ContainerSpec:
 Image:         alpine:latest@sha256:ab00606a42621fb68f2ed6ad3c88be54397f981a7b70a79db3d1172b11c4367d
 Args:          ping www.baidu.com
 Init:          false
Resources:
Endpoint Mode:  vip

伸縮性

docker service update --replicas 2 hello-world サービスタスクの元の数2倍に

docker@default:~$ docker service update --replicas 2 hello-world
hello-world
overall progress: 2 out of 2 tasks                                                                                                                                                       1/2: running   [==================================================>]                                                                                                                     2/2: running   [==================================================>]                                                                                                                     verify: Service converged     

docker service ps <name> このタスクの動作を確認

docker@default:~$ docker service ps hello-world
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE                ERROR               PORTS
j03uhnoauhet        hello-world.1       alpine:latest       default             Running             Running 26 minutes ago
k6oudbv4e9he        hello-world.2       alpine:latest       work1               Running             Running about a minute ago

割り当てられた2つのタスクここでdefault work1ノードを

チェックwork1ノードの動作を

### 进入work1
docker-machine ssh work1

docker@work1:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
1c86154f43f4        alpine:latest       "ping www.baidu.com"   4 minutes ago       Up 4 minutes                            hello-world.2.k6oudbv4e9henfqbhvulxt1y2

クラスタからの出口

docker swarm leave exitコマンドの後に、ノードをオフライン。

docker@default:~$ docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
5mohlisxbrkogfbtzk6nujkfw *   default             Ready               Active              Leader              19.03.5
qqgd4abpjw08lwh31ddgez041     work1               Down                Active                                  19.03.5
gblxw2whlxl0k94nmfozhs7gl     work2               Ready               Active                                  19.03.5

参照

https://www.cnblogs.com/ityouknow/p/8903975.html

おすすめ

転載: www.cnblogs.com/ChromeT/p/12306725.html