Назад | Перейти на главную страницу

Как настроить контейнеры докеров для связи в частной сети?

У меня есть небольшой кластер в стойке с частной сетью в диапазоне 192.168.3.0/24. Я хотел бы, чтобы мои рабочие службы общались друг с другом через эту сеть, но не могу понять, как заставить докер это разрешить.

Моя идеальная конфигурация - это один общедоступный контейнер, который передает соединения работнику, который затем может взаимодействовать с различными службами в частной сети для выполнения своей работы.

eth0 -> load balancer --> 192.168.3.3:80 --> 192.168.3.5:1234 (db)
                      \-> 192.168.3.4:80 /
                       \> 192.168.3.5:80/

Если бы все рабочие были на одной машине, я мог бы сделать это с docker run --link ... но поскольку они находятся на разных машинах, это не сработает.

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

docker run -d -p $PRIVATE_IPV4:80:80 myworker

и база данных запускалась так:

docker run -d -p $PRIVATE_IPV4:1234:1234 mydb

Из хозяин Я могу нормально разговаривать с каждым из контейнеров, но каждый контейнер не может маршрутизировать ни один другой контейнер. I.E. curl http://192.168.3.4 работает с хоста, но не с контейнера, запущенного на хосте.

Балансировщик нагрузки в данном случае - это nginx, который запускается следующим образом:

docker run -d -p $PUBLIC_IPV4:80:80 nginx

nginx.conf

upstream app {
  server 192.168.3.3:80;
  server 192.168.3.4:80;
  server 192.168.3.5:80;
}
...

Похоже, это будет довольно стандартная конфигурация. Что я делаю не так?

В настоящее время Docker сам по себе не предоставляет сетевых возможностей для контейнеров. Ткать является одним из самых простых в использовании оверлейных решений SDN. Он работает в любом облаке и даже в нескольких облаках.

Я должен отрицать это, я один из инженеров Weave.

Вы можете попробовать реализовать свою архитектуру в диспетчере контейнеров, таком как Kubernetes, поверх CoreOS. Есть много гидов. Это отрывок из презентации на DockerCon https://www.brighttalk.com/webcast/11427/136165 об управлении кластером контейнеров.