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

У меня есть небольшой кластер в rackspace с частной сетью в диапазоне 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

От хоста я могу говорить с каждым из контейнеров очень хорошо, но каждый контейнер не может направить ни к какому другому контейнеру. Т.Е. 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;
}
...

Это кажется, что была бы довольно стандартная конфигурация. Что я делаю неправильно?

5
задан 20 December 2014 в 03:56
2 ответа

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

0
ответ дан 3 December 2019 в 02:09

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

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

0
ответ дан 3 December 2019 в 02:09

Теги

Похожие вопросы