Введение
В этом лабораторном занятии вы научитесь управлять узлами Docker Swarm с помощью команды docker node update. Вы изучите различные функции этой команды, включая обновление доступности узла для управления размещением задач, добавление и удаление меток (labels) для классификации узлов в рамках ограничений планирования задач, а также изменение роли узла в кластере Swarm.
Путем практических упражнений вы научитесь приостанавливать узел, чтобы предотвратить назначение на него новых задач, добавлять одну или несколько меток на узлы, удалять существующие метки и повышать рабочий узел до роли менеджера. Эти шаги дадут вам практический опыт в управлении состоянием и атрибутами узлов в кластере Docker Swarm.
Обновить доступность узла до состояния pause
На этом шаге мы научимся обновлять доступность узла в кластере Docker Swarm. Доступность узла определяет, может ли он получать новые задачи. Возможные состояния доступности: active (активный), pause (приостановленный) и drain (освобождающийся).
active: Узел может получать новые задачи. Это состояние по умолчанию.pause: Узел не будет получать новые задачи, но существующие задачи будут продолжать выполняться.drain: Узел не будет получать новые задачи, и существующие задачи будут остановлены и перепланированы на других узлах.
Мы изменим доступность текущего узла на pause. Сначала нам нужно найти идентификатор текущего узла. Мы можем использовать команду docker node ls для вывода списка узлов в кластере.
docker node ls
В выводе будет список узлов с указанием их идентификатора, имени узла, статуса, доступности и статуса менеджера. Определите идентификатор узла, на котором вы сейчас работаете.
Теперь используйте команду docker node update с флагом --availability pause и идентификатором узла, чтобы изменить доступность узла. Замените <node_id> на фактический идентификатор вашего узла.
docker node update --availability pause <node_id>
После выполнения команды вы можете проверить изменения, снова запустив docker node ls. Теперь доступность вашего узла должна быть pause.
docker node ls
Добавить метку (label) к узлу
На этом шаге мы научимся добавлять метку (label) к узлу в кластере Docker Swarm. Метки представляют собой пары "ключ-значение", которые можно прикрепить к узлам. Они полезны для организации и выбора узлов на основе определенных критериев, которые могут быть использованы для ограничений при размещении задач.
Мы добавим метку с именем env и значением dev к текущему узлу. Сначала убедитесь, что у вас есть идентификатор узла из предыдущего шага. Если нет, вы можете получить его снова, используя команду docker node ls.
docker node ls
Теперь используйте команду docker node update с флагом --label-add, меткой в формате ключ=значение и идентификатором узла. Замените <node_id> на фактический идентификатор вашего узла.
docker node update --label-add env=dev <node_id>
После добавления метки вы можете проверить узел, чтобы увидеть добавленную метку. Используйте команду docker node inspect, за которой следует идентификатор узла.
docker node inspect <node_id>
Найдите раздел Labels в выводе. Вы должны увидеть метку env: dev в этом разделе.
Добавить несколько меток (labels) к узлу
На этом шаге мы научимся добавлять несколько меток (labels) к узлу одновременно. Вы можете добавить несколько меток, повторяя флаг --label-add для каждой метки, которую вы хотите добавить.
Мы добавим две новые метки к текущему узлу: tier со значением frontend и region со значением us-east. Убедитесь, что у вас есть идентификатор узла из предыдущих шагов.
Используйте команду docker node update с несколькими флагами --label-add и идентификатором узла. Замените <node_id> на фактический идентификатор вашего узла.
docker node update --label-add tier=frontend --label-add region=us-east <node_id>
После добавления меток снова проверьте узел, чтобы убедиться, что все метки были добавлены правильно.
docker node inspect <node_id>
В разделе Labels вывода вы должны увидеть env: dev, tier: frontend и region: us-east.
Удалить метку (label) с узла
На этом шаге мы научимся удалять метку (label) с узла в кластере Docker Swarm. Вы можете удалить метку, используя команду docker node update с флагом --label-rm, за которым следует ключ метки.
Мы удалим метку region, которую добавили на предыдущем шаге. Убедитесь, что у вас есть идентификатор узла.
Используйте команду docker node update с флагом --label-rm и ключом метки (region), за которым следует идентификатор узла. Замените <node_id> на фактический идентификатор вашего узла.
docker node update --label-rm region <node_id>
После удаления метки снова проверьте узел, чтобы убедиться, что метка была удалена.
docker node inspect <node_id>
В разделе Labels вывода вы должны увидеть env: dev и tier: frontend, но метка region: us-east должна отсутствовать.
Обновить роль узла на менеджер (manager)
На этом шаге мы научимся обновлять роль узла в кластере Docker Swarm. Узел может иметь одну из двух ролей: manager (менеджер) или worker (рабочий узел). Узлы-менеджеры (manager nodes) обрабатывают задачи управления кластером, в то время как рабочие узлы (worker nodes) запускают сервисы.
Мы повысим текущий узел до роли менеджера (manager). Убедитесь, что у вас есть идентификатор узла.
Используйте команду docker node update с флагом --role manager и идентификатором узла. Замените <node_id> на фактический идентификатор вашего узла.
docker node update --role manager <node_id>
После обновления роли проверьте изменения, выведя список узлов.
docker node ls
В выводе теперь должна быть указана роль вашего узла как Manager.
Резюме
В этом практическом занятии (lab) мы научились управлять узлами Docker Swarm с помощью команды docker node update. Мы рассмотрели несколько ключевых операций, в том числе обновление доступности (availability) узла до состояния pause, чтобы предотвратить получение им новых задач, при этом разрешая существующим задачам продолжать работу.
Кроме того, мы изучили, как добавлять и удалять метки (labels) с узлов. Мы научились добавлять одну метку с использованием --label-add key=value и несколько меток одновременно. Мы также практиковали удаление определенной метки с помощью --label-rm key. Наконец, мы показали, как изменить роль узла на manager, подчеркнув гибкость команды docker node update в управлении состоянием и конфигурацией узлов в кластере Docker Swarm.



