2019年7月10日水曜日

docker Swarm で使える visualizer をサクっと使ってみた

概要

docker-swarm-visualizer は docker Swarm 用の管理 UI です
stack deploy を使っていれば docker-compose.yml に記載するだけで簡単に導入できます

環境

  • macOS 10.14.5
  • Vagrant 2.1.1
  • Ubuntu 16.04 LTS
  • docker 18.09.7

docker-compose.yml

version: '3.4'

services:
  redis:
    image: redis
    ports:
      - "6379:6379"
  nginx:
    image: nginx
    environment:
      DUDE: "{{.Node.Hostname}}"
    deploy:
      replicas: 3
  visualizer:
    image: dockersamples/visualizer:stable
    ports:
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]

テスト用にいくつかコンテナを立ち上げています
visualizer は必ず manager ノードで動作させる必要があります
visualizer の service をそのままコピペするれば動作します

  • docker stack deploy -c docker-compose.yml test

stack, service, ps 確認

  • docker stack ls
NAME                SERVICES            ORCHESTRATOR
test                3                   Swarm
  • docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                             PORTS
hgxr3sloz9kt        test_nginx          replicated          3/3                 nginx:latest                      
0ltzk5dou6f3        test_redis          replicated          1/1                 redis:latest                      *:6379->6379/tcp
owqk1g7ph5y0        test_visualizer     replicated          1/1                 dockersamples/visualizer:stable   *:8080->8080/tcp
  • docker stack ps test
ID                  NAME                IMAGE                             NODE                DESIRED STATE       CURRENT STATE           ERROR               PORTS
0fmk68yi8i7b        test_nginx.1        nginx:latest                      vm01                Running             Running 8 minutes ago                       
v100ayawcz52        test_redis.1        redis:latest                      vm02                Running             Running 8 minutes ago                       
nxqykk8zicu4        test_visualizer.1   dockersamples/visualizer:stable   vm01                Running             Running 8 minutes ago                       
pc78wq565vyb        test_nginx.2        nginx:latest                      vm02                Running             Running 8 minutes ago                       
tlfofrea4ck2        test_nginx.3        nginx:latest                      vm02                Running             Running 8 minutes ago

iptables 確認

  • sudo iptables -nL DOCKER-INGRESS
Chain DOCKER-INGRESS (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8080
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED tcp spt:8080
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:6379
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED tcp spt:6379
RETURN     all  --  0.0.0.0/0            0.0.0.0/0

動作確認

manager のノードの IP の 8080 にアクセスしましょう
するとどのノードでどのコンテナが動作しているか確認することができます

ちなみに manager の IP は以下のコマンドで確認できます

  • docker node inspect self --format '{{ .Status.Addr }}'

参考サイト

0 件のコメント:

コメントを投稿