У меня есть сервер OpenVPN, работающий с некоторыми частными IP-адресами, и я хотел бы, чтобы мои службы Docker Swarm получили доступ к этим адресам.
В идеале, не было бы клиента OpenVPN «внутри» контейнеров, поскольку предполагается, что образы будут развернуты в среде, где VPN не потребуется.
Что я пробовал до сих пор
Я успешно подключил контейнер к своему VPN с dperson / OpenVPN-клиент образ.
Я успешно запустил другой контейнер, используя этот контейнер в качестве своей сети, используя --net=container:my-vpn-client
флаг.
Сейчас я пытаюсь создать сервис докеров это будет доступ к моим частным IP-адресам и что я нашел:
- Я не могу запустить клиент openVPN в сервисе, так как он не может быть предоставлен
cap-add: NET_ADMIN
, Есть открытые проблемы с Докером, обсуждающим этот вопрос, но они все еще открыты. - Я подумал, что мог бы запустить клиентский контейнер openVPN «рядом» с кластером роя, но я не могу использовать
network_mode: "container:my-vpn-client"
поскольку он не поддерживается и имеет смысл, так как я не мог заставить произвольный контейнер присутствовать на каждом узле роя, если бы он не был самой службой. - Я попытался создать подключаемую сеть (мост / оверлей) и просто вставить свой клиентский контейнер OpenVPN в него и ожидать, что другие члены этой сети волшебным образом пройдут через этот канал ... и я был разочарован.
Итак, я здесь, любая идея?
Постскриптум Если это может помочь, это в основном для настройки некоторых автоматических тестов, которые будут запускать сервисы на односкоростном компьютере в режиме роя, как в swarm init & gt; развертывание стека & gt; запустить тесты & gt; Рой уйти. Так что, если есть «взлом» для этого ... я может быть заинтересованным ;)
ccr
файл, как если бы вы имели дело с локальной сетью. Как со всей маршрутизацией TCP / IP, "traceroute
твой лучший друг, как естьtcpdump
или WireShark. "