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

Docker - ограничение доступа к обмену данными между контейнерами в одной оверлейной сети.

Мы хотим использовать docker swarm с Elasticsearch в контейнерах. Это несколько экземпляров Elasticsearch на разных хостах Docker, которые работают в рое.

Однако мы хотели бы использовать большую подсеть, а затем ограничить доступ между контейнерами для каждого контейнера. Это возможно?

Например:

Host 1:                                        Host 2:
   192.168.1.10                                192.168.1.11
 - Elasticsearch-node1<----------------------->Elasticsearch-node2
   192.168.1.12                                192.168.1.13
 - Elasticsearch-node3<----------------------->Elasticsearch-node4

В приведенном выше примере все контейнеры используют сеть 192.168.1.0/24, но мы хотим ограничить доступ, чтобы node1 мог взаимодействовать только с node2, а не node3 или node4. Как бы мы этого добились?

Вы можете добиться разделения между сервисами в одной и той же оверлейной сети, используя Consul Connect, но это увеличивает количество движущихся частей в вашей системе.

В чем причина того, что вы не можете поместить службы в отдельные оверлейные сети?