2016-09-22 2 views
2

В режиме старта докеров я могу запустить узел док-станции ls, чтобы перечислить узлы рой, но он не работает на рабочих узлах. Мне нужна аналогичная функция. Я знаю, что рабочие узлы не имеют сильного согласованного представления о кластере, но должен быть способ получить текущего лидера или доступного лидера.В режиме рока Docker есть ли способ получить информацию от работников?

Итак, есть способ получить текущего лидера/менеджера на рабочем узле в режиме роуминга докеров 1.12.1?

ответ

2

Документы и сообщение об ошибке с упоминания в рабочем узле, который вы должны быть на узел менеджера для выполнения роя команды или вида кластера состояния:

сообщения об ошибке от узла рабочего: «Этот узел а не диспетчер рой.Нерабочие узлы не могут использоваться для просмотра или изменения состояния кластера. Запустите эту команду на узле менеджера или продвиньте текущий узел к менеджеру ».

После дальнейших размышлений: Один из способов вы можете взломать эту гайку, чтобы использовать внешний магазин ключ/значение, как etcd или любой другой магазин ключ/значение, которые роятся поддерживает и сохранить избранный узел там, так что это может быть запрашивается всеми узлами. Вы можете увидеть примеры этого в проекте управления докером судоверфи/UI: http://shipyard-project.com/

Еще один простой способ - запустить службу redis в кластере и другую услугу, чтобы объявить избранного лидера. У этой службы объявлений будет ограничение только на управляющие узлы: --constraint node.role == manager

+1

Я рассказал об этой проблеме в github, и они сказали, что это предназначенное поведение для обеспечения безопасности. Поэтому ваши рекомендуемые решения являются законными. Спасибо за ответ. – Berk

-1

Вы можете получить адрес менеджера, запустив docker info у работника.

Смежные вопросы