Фильтрация узлов по меткам узлов
На этом этапе мы научимся фильтровать узлы на основе назначенных им меток. Метки узлов - это пары ключ-значение, которые вы можете прикрепить к узлам для целей организации или для управления размещением сервисов.
Сначала добавим метку нашему узлу-менеджеру. Мы добавим метку location=datacenter1
. Для этого используем команду docker node update
, за которой следует идентификатор узла и флаг --label-add
.
Получим идентификатор узла снова с помощью команды docker node ls -q
:
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
.