ノードラベルによるノードのフィルタリング
このステップでは、ノードに割り当てられたラベルに基づいてノードをフィルタリングする方法を学びます。ノードラベルは、組織目的やサービス配置の制御のためにノードに付けることができるキーと値のペアです。
まず、マネージャノードにラベルを追加しましょう。location=datacenter1
というラベルを追加します。これを行うには、docker node update
コマンドの後にノード ID と --label-add
フラグを指定します。
docker node ls -q
を使用して再度ノード ID を取得します。
NODE_ID=$(docker node ls -q)
echo $NODE_ID
次に、ノードにラベルを追加して更新します。
docker node update --label-add location=datacenter1 $NODE_ID
ノードが更新されたことを確認する出力が表示されるはずです。
ラベルが追加されたことを確認するには、ノードを調査できます。
docker node inspect $NODE_ID
出力の Labels
セクションを探します。"location": "datacenter1"
が表示されるはずです。
次に、このラベルに基づいてノードをフィルタリングしましょう。--filter
フラグを label
キーと key=value
形式のラベルで使用します。
docker node ls --filter label=location=datacenter1
このコマンドは、location
ラベルの値が datacenter1
であるノードのみを表示します。この場合、マネージャノードが表示されます。
また、特定のラベルキーを持つノードを、その値に関係なくフィルタリングすることもできます。キーのみを指定します。
docker node ls --filter label=location
これにより、location
ラベルが定義されているすべてのノードが表示されます。