Как агенты Docker Swarm сообщают свой IP-адрес Swarm Manager?

Я хотел бы понять механизм связи между Docker Swarm Manager и Docker Swarm Agents:

  • Swarm Manager генерирует токен.
  • Роевые агенты генерируются, и им передается этот токен. (и их собственный IP)

Теперь, когда менеджеру необходимо дать инструкции агентам, как он был проинформирован о том, что агенты существуют для этих IP-адресов?

Гипотеза:

Агенты регистрируются на каком-то сервере docker.com со своим токеном, а Менеджер получает от него свои адреса, используя тот же токен?

Спасибо


person Yow    schedule 12.10.2015    source источник


Ответы (1)


Параметры описаны в документе здесь: https://docs.docker.com/swarm/discovery/

В этом примере я использую размещенное обнаружение с помощью Docker Hub. Существуют и другие варианты, такие как статический файл, консул, и т. д. и т. д.

  1. Вы создаете свой кластер докеров:

    docker run -rm swarm create

    Это даст вам токен, который будет использоваться в качестве идентификатора вашего кластера: e4802398adc58493...longtoken

  2. Вы регистрируете один или несколько хостов докеров в своем кластере.

    docker run -d swarm join --addr=172.17.42.10:2375 token://e4802398adc58493...longtoken

    Предоставленный IP-адрес — это адрес вашего хост-узла Docker.

    Так менеджер будущего узнает об агентах/узлах.

  3. Вы развертываете диспетчер роя на любом из ваших хостов докеров (скажем, 172.17.42.10:2375, тот же самый, который я использовал для создания роя и регистрации моего первого хоста докеров).

    docker run -d -p 9999:2375 swarm manager token://e4802398adc58493...longtoken

  4. Чтобы использовать кластер, вы устанавливаете DOCKER_HOST на IP-адрес и порт вашего менеджера роя.

    export DOCKER_HOST="tcp://172.17.42.10:2375"

Использование чего-то вроде docker info теперь должно возвращать информацию об узлах в вашем кластере.

person Aurélien Bottazini    schedule 12.10.2015
comment
В моем примере по пункту 2 у меня еще нет менеджера роя. Я не понимаю вашего комментария. - person Aurélien Bottazini; 13.10.2015
comment
@Yow, я редактирую свой ответ, чтобы сделать его более ясным и дать лучший ответ на ваш вопрос. - person Aurélien Bottazini; 13.10.2015