Я хочу протестировать свой распределенный алгоритм как на моем ноутбуке (x86_64), так и на моем кластере Raspberry Pis (armhf), используя новый режим роя докеров.
После множества настроек я могу успешно создать кластер swarm, состоящий из одного управляющего узла (ноутбука) и N+1 рабочих узлов (N рашпилей плюс мой ноутбук). Это выглядит так:
laptop$ docker swarm init --advertise-addr 192.168.10.1
raspi1$ docker swarm join --token <TOKEN> 192.168.10.1:2377
# [...]
raspiN$ docker swarm join --token <TOKEN> 192.168.10.1:2377
Теперь я создал два образа для своего проекта: x86_64 (my_project:x86_64
) и armhf (my_project:armhf
). Мне очень нравится архитектура узлов/служб из этого нового режима роя, так как создание M (квази-)независимых узлов — это именно то, что я хочу, но как я могу передать правильный образ нужному узлу с помощью команды docker service create ...
?< /сильный>
Из того, что я вижу, docker service create
принимает только одно изображение в качестве параметра! Я видел здесь, что я мог бы дать метку каждому узлу и попросить службу использовать только узлы, имеющие эту определенную метку, но это не то, что я хочу. В конечном итоге мне пришлось бы управлять двумя кластерами задач, разделенными по архитектуре, что подавило бы мое желание использовать планировщик и диспетчер режима роя.
Я унылый выродок в своем стремлении к портативности, вот кто я!
PS: обратите внимание, у этого есть тег «docker-swarm-mode», а не «docker-swarm», потому что docker swarm и docker swarm — это две разные вещи.