Как работает оркестровка изображений в режиме Swarm? - PullRequest
0 голосов
/ 18 октября 2018

Я настроил кластер из 3 узлов (без доступа к Интернету) с 1 менеджером и 2 рабочими узлами, используя стандартную документацию по роу.

Как менеджер роя в режиме роя узнает об изображениях, присутствующих врабочие узлы?

Допустим, у меня есть изображение A в рабочем узле-1 и изображение B в рабочем узле-2, а в диспетчерском узле нет изображений.

Теперь, как мне начатьКонтейнер для изображения А с помощью менеджера?Будет ли он запускаться в менеджере или узле-1?

Когда я запрашиваю у менеджера список изображений, он выдаст весь список с буквами A и B?

Кто-нибудь знает, как это работает??Я не смог получить подробности из документации.

Ответы [ 3 ]

0 голосов
/ 19 октября 2018

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

Для автономной среды я бы рекомендовал автономный сервер реестра, доступный для кластера.Вы даже можете запустить его на кластере.Поместите туда свое изображение и направьте свои серверные службы в реестр, чтобы их изображения можно было вытащить.См. Этот документ для получения подробных сведений о запуске автономного реестра или любых других сторонних параметрах (например, Harbour): https://docs.docker.com/registry/

Другой вариант - отключить закрепление изображений и вручную скопировать изображения в каждый из них.вашего роя узлов.Это необходимо сделать до развертывания любых изменений службы.Вы также потеряете преимущество многократного использования слоев изображений, когда будете копировать их вручную.Из-за всех этих проблем, которые он создает, накладных расходов на управление и риска ошибок, я бы порекомендовал эту опцию.

0 голосов
/ 19 октября 2018

Запустите команду docker stack deploy с --with-registry-auth, которая предоставит Workers доступ к вытягиванию необходимого образа

По умолчанию Docker Swarm извлечет последнее изображение из реестра при развертывании

0 голосов
/ 19 октября 2018

Узел менеджера Docker Swarm может быть рабочим по второй роли, но это не является строго обязательным.

Политика развертывания образа отображается через docker-compose.yml, которая имеет такую ​​информацию, как целевые узлы, сети, имена хостов, томаи т. д. в отношении конкретной услуги.Таким образом, он запустится либо в указанном узле, либо в пустом месте по умолчанию.

Менеджер Swarm связывается с рабочими узлами через сети Docker:

Когда вы инициализируете рой или присоединяетесь к Dockerхост для существующего роя, на этом хосте Docker создаются две новые сети:

  • оверлейная сеть, называемая входящей, которая обрабатывает трафик управления и данных, относящийся к сервисам роя.Когда вы создаете службу Swarm и не подключаете ее к пользовательской оверлейной сети, по умолчанию она подключается к входящей сети

  • мостовой сети с именем docker_gwbridge, которая соединяет отдельный Docker.демон другим демонам, участвующим в рое.

Ссылка

Во время развертывания Swarm образы его сервисов распространяютсяна рабочие узлы в соответствии с их политикой развертывания.

Узел менеджера будет содержать изображения, как только узел станет рабочим (исправьте меня, если не будет).

...