IT技術で仕事を減らしたい!

ITエンジニアのメモ+α

Docker Swarmモードでのnode管理

どうも、nippa です。

Docker Swarm モードを利用していますが、ノードの管理方法を記事にまとめておこうと思います。

環境

Virtual Box 上に Linux サーバを 2 台構築

  • ubuntu 20.04
  • メモリ:2GB
  • ストレージ: 10GB

サーバは

  • Manager サーバ(manager node + work node)
  • Worker サーバ(work node)

と定義します。()の中は swarm モードでの node 構成を示しています。

設定の詳細はこちらの記事に記載してあります。

timesaving.hatenablog.com

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 へのコンテナをデプロイすることができるようになります。

ではでは、また次回。