Статус: Ошибка ответа от демона: узел elk12 неоднозначен (найдено 2 совпадений), код: 1

Я использую следующую среду: Debian 9 с Docker CE:

# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
# docker --version
Docker version 17.09.0-ce, build afdb6d4
# 

docker node ls:

# docker node ls | grep elk12
2keku0oj8zhsy6uyvyl4gd4d7     elk12               Down                Active              Reachable
tbwbpkl5qys4wwxbisga3y2oe *   elk12               Ready               Active              Reachable
# docker node inspect elk12
[]
Status: Error response from daemon: node elk12 is ambiguous (2 matches found), Code: 1
#

Я не могу использовать docker node rm elk12, так как я согласно вышеприведенному выводу у меня 2.

Как приступить к удалению "вниз" узла из списка, желательно, не затрагивая рабочий кластер). Я не верю, что у меня даже есть этот узел (вероятно, некоторые остатки давным-давно) ...

Пожалуйста, порекомендуйте.


ОБНОВИТЬ:

# docker node rm 2keku0oj8zhsy6uyvyl4gd4d7
Error response from daemon: rpc error: code = FailedPrecondition desc = node 2keku0oj8zhsy6uyvyl4gd4d7 is a cluster manager and is a member of the raft cluster. It must be demoted to worker before removal
# docker node demote 2keku0oj8zhsy6uyvyl4gd4d7
Manager 2keku0oj8zhsy6uyvyl4gd4d7 demoted in the swarm.
# docker node rm 2keku0oj8zhsy6uyvyl4gd4d7
2keku0oj8zhsy6uyvyl4gd4d7
# docker node ls | grep elk12
tbwbpkl5qys4wwxbisga3y2oe     elk12               Ready               Active              Reachable
# 

1 ответ

Решение

Здесь объясняется проблема с дублированным узлом с тем же именем, но другим идентификатором, вероятно, узел, который оставил рой и присоединился к нему, перезапустите менеджер...

Если вы хотите удалить дублированный узел и избавиться от этого неоднозначного предупреждения, вы можете использовать хеш-идентификатор, а не имя:

docker node rm 2keku0oj8zhsy6uyvyl4gd4d7

Если вы хотите удалить другой узел с именем elk12, кажется, что этот узел является менеджером, поэтому вам следует действовать осторожно, так как у вас могут возникнуть проблемы, если у вас недостаточно менеджеров для достижения консенсуса. Если вы чувствуете, что удалить этот узел менеджера безопасно, потому что в вашем рое достаточно узлов, работающих как менеджеры, вам следует выполнить следующее:

  1. Понижение управляющего узла (понижение док-узла). Таким образом, этот узел больше не является управляющим узлом и работает как рабочий узел.
  2. Слейте рабочий узел (слив док-узла). Контейнеры, запущенные в elk2, будут перемещены на другие рабочие узлы в кластере.
  3. Заставить рабочий узел покинуть Рой (рой док-станции покидает узел elk2)
  4. Удалить узел (Docker узел RM...)
Другие вопросы по тегам