2020年12月3日木曜日

macOS 上の docker-machine で Swarm クラスタを構築してみた

概要

MacOS 上に docker-compose をインストールして Vagrant 上に docker swarm 環境を構築してみました

環境

  • macOS 10.15.7
  • docker-machine 0.16.2

インストール

  • brew install docker-machine

マスタノード構築

  • docker-machine create master

作成できたマスタノードの IP は 192.168.99.109 とします

init とトークンの取得

  • docker-machine ssh master
  • docker swarm init --advertise-addr 192.168.99.109

これでノードを join させるためのコマンドが取得できるのでメモしておきます

ワーカノード構築

  • docker-machine create node1

join

  • docker-machine ssh node1
  • docker swarm join --token SWMTKN-1-3xj5zbof09ut20zpbtzrja6jls9hk35f2vz9yq46yal9b098ed-1jmee8ltbsacdghmjxc4esx7e 192.168.99.109:2377

動作確認

  • docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS master - virtualbox Running tcp://192.168.99.109:2376 v19.03.12 node1 - virtualbox Running tcp://192.168.99.110:2376 v19.03.12
  • eval "$(docker-machine env master)"
  • docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION r5u75mh9bt2krfnvodr4m4kxp * master Ready Active Leader 19.03.12 wgpe9ktvo7dcd6tcbqha56hyn node1 Ready Active 19.03.12

おまけ: 環境変数のリセット

  • eval "$(docker-machine env -u)"

トラブルシューティング

docker run swarm create でトークンを生成しようとすると以下のエラーになり取得できません
なので今回は docker-machine ssh を使ってトークンを取得しています

2020/12/03 02:50:12 Post https://discovery.hub.docker.com/v1/clusters: dial tcp: lookup discovery.hub.docker.com on 10.0.2.3:53: no such host

最後に

docker-machine を使った場合でもちゃんと init -> join の流れで構築しましょう

参考サイト

0 件のコメント:

コメントを投稿