どうも、nippa です。
Docker Swarm モードを利用していますが、ノードの管理方法を記事にまとめておこうと思います。
- 環境
- node 一覧表示
- node の詳細確認
- manager node の Drain
- manager node の active
- manager node への昇格
- manager node からの降格
- node のメタ情報の追加
- node のメタ情報の削除
- Swarm からノードの除外
- 感想
環境
Virtual Box 上に Linux サーバを 2 台構築
- ubuntu 20.04
- メモリ:2GB
- ストレージ: 10GB
サーバは
- Manager サーバ(manager node + work node)
- Worker サーバ(work node)
と定義します。()の中は swarm モードでの node 構成を示しています。
設定の詳細はこちらの記事に記載してあります。
node 一覧表示
以下のコマンドで、ノード一覧を表示します。
docker node ls
node の詳細確認
以下のコマンドで、アクセス中 manager node の swarm モードの詳細を確認することができます。
docker node inspect self --pretty
他のノードの詳細を確認する場合は、
docker node ls
で表示されるID
またはHostname
を指定すると詳細を確認することができます。
docker node inspect [ID or Hostname] --pretty
manager node の Drain
manager node を Swarm モードから Drain する場合、
docker node update --availability drain [ID or Hostname]
ID
またはHostname
を指定することで Drain にすることができます。
manager node の active
manager node を Swarm モードから Drain する場合、
docker node update --availability active [ID or Hostname]
ID
またはHostname
を指定することで Active にすることができます。
manager node への昇格
以下のコマンドで、指定した node を manager node へ昇格することができます。
docker node promote [ID or Hostname]
manager node からの降格
以下のコマンドで、指定した node を manager node へ降格することができます。
docker node demote [ID or Hostname]
node のメタ情報の追加
--label-add [key]
で、指定したノードにラベル(
docker node update --label-add database [ID or Hostname]
ノードのラベルの確認には、docker node inspect [ID or Hostname] --pretty
複数指定することも可能です。また、<key>=<value>
という形でラベルを指定することもできます。
node のメタ情報の削除
以下のコマンドでラベルを上書きして削除します。
docker node update [ID or Hostname]
Swarm からノードの除外
以下のコマンドを各ノードで実行することで swarm モードから除外されます。
docker swarm leave
manager node から除外を実行する場合は、以下のコマンドで行います。
docker node rm [ID or Hostname]
感想
今回、ノード管理についてまとまめました。
ラベルをつけることで、ラベルのついた node へのコンテナをデプロイすることができるようになります。
ではでは、また次回。