Docker Swarm modeのノードに対してラベルを付与する

docker nodeコマンドを利用してノードに対してラベルが付与できるそうです。このコマンドはマネージャーノードから実行ができます。ラベルの確認には方法が見つからなかったけど、inspectで確認できるのでとりあえずこれでいきます。

$ docker -H manager-node inspect NODE_ID | jq -r '.[].Spec'
{
  "Labels": {},
  "Role": "manager",
  "Availability": "active"
}

次にラベルを追加します

docker -H manager-node node update --label-add type=files NODE_ID

追加されましたね

$ docker -H manager-node inspect NODE_ID | jq -r '.[].Spec'
{
  "Labels": {
    "type": "files"
  },
  "Role": "manager",
  "Availability": "active"
}

削除します

docker -H manager-node node update --label-rm type NODE_ID

消えました

$ docker -H manager-node inspect NODE_ID | jq -r '.[].Spec'
{
  "Labels": {},
  "Role": "manager",
  "Availability": "active"
}

ラベルは様々な事に使えます。例えば特定のラベルを指定してデプロイなどができます。今回は特定のラベルが付与されたノードはファイルを扱うことに長けたノードで、ファイルを扱うコンテナはそのノードで動かすみたいなことに使いました。

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA