Узел Docker отключается после повышения с рабочего на менеджера.

Вопрос или проблема

Докомплект состоит из 3 узлов:

ID                            HOSTNAME          STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
ec9gxe01ofk38xb3o6hg8xccv     docker-worker01   Готов     Активен                          20.10.9
e9eoqfjqgfoj5i7bp83dqoyn6     docker-worker02   Выключен  Активен                          20.10.9
nbvdgqwbw03m7huj0cscw7whc *   server03          Готов     Активен         Лидер           20.10.9

Когда я пытался повысить рабочий узел до уровня управляющего, он оказался в состоянии “Выключен”:

[root@server03 ~]# docker node promote docker-worker02
Узел docker-worker02 повышен до управляющего в кластере.
[root@server03 ~]# docker node  ls
ID                            HOSTNAME          STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
ec9gxe01ofk38xb3o6hg8xccv     docker-worker01   Готов     Активен                          20.10.9
e9eoqfjqgfoj5i7bp83dqoyn6     docker-worker02   Выключен  Активен                          20.10.9
nbvdgqwbw03m7huj0cscw7whc *   server03          Готов     Активен         Лидер           20.10.9

Тем не менее, не удалось найти никаких логов, показывающих ошибку на узле сервера.

Мне пришлось заставить этот «Выключенный» узел покинуть кластер и снова присоединиться. Это помогло вернуть статус в “Готов”.

то есть:

с docker-worker02,

docker swarm leave

затем

swarm join --token <token> <ip:port>

Да, 0

Мне пришлось заставить этот «Выключенный» узел покинуть кластер и снова присоединиться. Это помогло вернуть статус в “Готов”.

Но мне интересно, почему статус управляющего не меняется после повышения узла?

Ответ или решение

Когда вы пытаетесь продвинуть узел в статусе рабочей ноды (worker) до статуса управляющей ноды (manager) в Docker Swarm, и узел после этого оказывается в статусе "Down", это может вызвать вопросы о неполадках в кластере. Давайте разберёмся, что происходит в этой ситуации.

Проблема с узлом Docker Swarm

В вашем случае у вас есть кластер Docker Swarm, состоящий из трёх узлов:

  • docker-worker01 (Ready, Worker)
  • docker-worker02 (Ready, Worker)
  • server03 (Leader, Manager)

Когда вы выполняете команду docker node promote docker-worker02, нода docker-worker02 становится управляющей, но вскоре после этого её статус изменяется на "Down". Это не является нормальным поведением, и такой статус может указывать на проблемы в сетевом соединении, настройках Docker или доступности ресурсов на данном узле.

Возможные причины проблемы

  1. Проблемы с сетью: Узел, став управляющим, может не иметь возможности соединяться с другими управляющими узлами или службой управления. Проверьте настройки сети и убедитесь, что docker-worker02 может достичь server03.

  2. Недостаток ресурсов: На узле могут отсутствовать необходимые ресурсы (например, ОЗУ или CPU), что может вызвать падение службы Docker. Проверьте системные журналы для выявления таких проблем.

  3. Конфликты в конфигурации: Возможны конфликты в конфигурации Docker, если на этом узле уже активны какие-либо другие службы или существуют неправильные конфигурации.

  4. Проблемы с Docker Daemon: Возможно, демон Docker на docker-worker02 перестал работать должным образом. Рекомендуется проверить инициализацию и статус демона с помощью команды systemctl status docker и перезапустить его, если это необходимо.

  5. Взаимодействия с сетью Swarm: Каждый узел Swarm использует специальный туннель для связи с другими узлами. Убедитесь, что порты (по умолчанию 7946 и 4789) открыты и доступны для обоих узлов.

Решение проблемы

Как вы уже сделали, решение проблемы с помощью команды docker swarm leave, а затем повторным присоединением узла к кластеру – это подходящее и правильное действие. Это обеспечило восстановление состояния узла в "Ready" и его полноценную работу как управляющего узла. Процесс присоединения вновь инициализирует связи и гарантирует, что конфигурации правильно применяются.

Почему статус управляющего узла не изменился

Что касается вашего вопроса о том, почему статус менеджера не изменился сразу после продвижения узла, это может быть связано с замедленной реакцией системы на изменения в статусах узлов или конфликтами в сети. Поскольку узел docker-worker02 переведен в "Down", это могло привести к тому, что другие узлы кластер не могли обновить информацию о его статусе, и он не успел принять пеереход в статус "Manager".

Таким образом, стабильность сети и корректная работа всех узлов играют критическую роль в управлении кластером Docker Swarm. Если проблема с узлом возникает повторно, рекомендую также рассмотреть мониторинг состояния узлов, чтобы заранее выявить потенциальные неполадки.

Оцените материал
Добавить комментарий

Капча загружается...