Docker swarm: как вручную установить имена узлов?

Некоторые сведения о моей среде:

У меня есть рой докеров, работающий на 3 бродячих коробках Ubuntu 14.04. Мастер роя работает на 1 машине (с консулом), а на двух других машинах работают рабочие роя, которые присоединены к мастеру. Я настроил среду, следуя странице документации https://docs.docker.com/swarm/install-manual/. Он работает правильно, так что любой docker -H :4000 <some_docker_command> запуск с моей главной машины работает нормально. Обнаружение службы активно, так как я запускаю контейнер gliderlabs/registrator на обоих моих рабочих процессах. Любые изменения в моем кластере, такие как сбой узла или контейнера, отображаются swarm в течение примерно 30 секунд (что, на мой взгляд, немного медленно, но, по крайней мере, работает).

Проблема:

Swarm распознает оба моих узла как «ubuntu-14».

vagrant@ubuntu-14:~$ docker -H :4000 ps
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                        NAMES
a6972155d243        cohenaj194/apache-simple   "/usr/sbin/apache2ctl"   About an hour ago   Up 13 seconds       172.28.128.6:32770->80/tcp   ubuntu-14/test2
af78a8c788ed        gliderlabs/registrator     "/bin/registrator con"   2 hours ago         Up About an hour                                 ubuntu-14/registrator2
8e39416a785a        gliderlabs/registrator     "/bin/registrator con"   2 hours ago         Up 2 hours                                       ubuntu-14/registrator1
27c2225b32fb        cohenaj194/apache-simple   "/usr/sbin/apache2ctl"   2 hours ago         Up 2 hours          172.28.128.4:32770->80/tcp   ubuntu-14/test1
vagrant@ubuntu-14:~$ docker -H :4000 network ls
NETWORK ID          NAME                DRIVER
38b24dc5615b        ubuntu-14/bridge    bridge              
c4e1ffae2fa7        ubuntu-14/bridge    bridge              
29cf499e57ab        ubuntu-14/host      host                
7b4a4a153ada        ubuntu-14/host      host                
723b6bc6f23c        ubuntu-14/none      null                
01f3647d62cd        ubuntu-14/none      null   

Я хотел бы знать, как вручную изменить имя моих узлов с «ubuntu-14» на другое. Я бы предпочел иметь возможность устанавливать теги, добавляя строку в файл /etc/default/docker, поскольку частное облако, в котором я в конечном итоге буду запускать свой кластер, не имеет возможности устанавливать теги экземпляра, как у других облачных провайдеров, таких как AWS.

tldr: У меня есть 3 бродячих ящика Ubuntu, на которых работает рой (1 мастер + 2 рабочих). Рабочие по умолчанию имеют имя тега «ubuntu-14», и я хочу вручную изменить его, добавив что-то в файл /etc/default/docker для каждого рабочего. Что мне добавить?


person Alex Cohen    schedule 31.05.2016    source источник


Ответы (1)


Решение

## change the hostname
hostname myname
## restart docker
sudo service docker restart

Я просто изменил имена хостов своих бродячих ящиков, отредактировав файл /etc/hostname и изменив ubuntu-14 на master, worker1 или worker2. Затем я перезапустил свои машины, а также должен был перезапустить службы докеров на каждой машине с помощью sudo service docker restart. Я также уничтожил свои старые контейнеры и запустил их снова. Я не уверен, что этот шаг необходим, но я сделал это на всякий случай.

person Alex Cohen    schedule 31.05.2016
comment
перезапуск службы докеров является ответом. Нет необходимости перезапускать машину. - person zkilnbqi; 02.12.2016
comment
Я думаю, вам даже не нужно этого делать, просто sudo hostnamectl --no-ask-password set-hostname [NameYouWantToChangeTo] - person SomeoneElse; 07.11.2020