Рабочие узлы Docker не могут автоматически присоединиться к рою (Azure) - PullRequest
0 голосов
/ 09 ноября 2018

Я немного разбирался в этом вопросе, и мне не повезло, поэтому я решил опубликовать здесь. Короче говоря, я управляю роем Docker на Azure. Все прошло отлично и работало хорошо, пока пару дней назад.

В то время рабочим узлам не удавалось автоматически присоединиться к рою. Я могу подключиться к рабочим узлам и присоединиться "вручную" (т.е. выполнить команду docker swarm join).

Это мой текущий рой:

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION y71cqwt9emeah5h8xihke7ev0 swarmm-agent-1395761400008N Ready Active 18.09.0 aju31jt00o83bwar9ecib47ai swarmm-agent-1395761400008R Ready Active 18.09.0 822fetitn9ipzkfnk19u1jbl5 * swarmm-master-13957614-0 Ready Active Leader 18.05.0-ce

Извиняюсь за форматирование, но, возможно, обратите внимание на ENGINE VERSION. Это единственное, что изменилось - раньше рабочие были 18.05-ce (сейчас они 18.09.0).

Для фона узел Leader - это подготовленная виртуальная машина (с набором доступности), тогда как рабочие узлы взяты из предоставленной VMSS.

Если я масштабирую VMSS для добавления другой виртуальной машины, тогда VM запускается , но не присоединяется к роду. Мне нужно найти IP-адрес новой виртуальной машины в Azure Resource Explorer, ssh по этому IP-адресу (из узла Leader) и вручную запустить команду join (с токеном соединения, который у меня есть).

Так что, как вы можете себе представить, это далеко не идеально. И это как если бы команда соединения больше не выполнялась при запуске виртуальной машины ... но я не могу найти ничего в журналах на этот счет (ни каких ошибок).

Версия докера на ведущем узле:

Docker версия 18.05.0-ce, сборка f150324

Тогда как на узлах это:

Docker версия 18.09.0, сборка 4d60db4

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

Наконец, после того, как узел присоединился к рою, он будет периодически переходить в состояние «Вниз», прежде чем вернуться на несколько минут позже. Мне неясно, что делает узел, когда это происходит ... возможно, уйти и снова присоединиться?

Буду очень признателен за любой свет, который может пролить на него любой желающий!

Ура, Ben

Редактировать: я понял, как просматривать журналы инициализации рабочего докера. Все хорошо (устанавливает Docker и т. Д.), Но когда узел пытается присоединиться к рою, появляется эта ошибка:

parse <ip address>:2375: first path segment in URL cannot contain colon

Выполненная команда:

docker -H <ip address>:2375 swarm join-token -q worker

Я могу присоединиться к рою вручную с помощью этой команды:

docker swarm join --token <token> <ip address>:2377

...