Мы внедряем инфраструктуру CI в виде стеков Docker.
Некоторым контейнерам в стеках теперь необходим доступ к внешним службам, доступным только через соединение OpenVPN, скажем, в подсети 192.168.2.0/24
.
Чтобы контейнеры были как можно более "универсальными", в идеале мы хотели бы добавить контейнер Docker, выступающий в качестве шлюза VPN, через который другие контейнеры могли бы взаимодействовать с подсетью 192.168.2.0/24
.
Сначала возникает сложность: для контейнеров VPN-клиентов необходимо cap-add
из NET_ADMIN
, которое недоступно в режиме роя, который мы используем для развертывания стека.Есть ли обходной путь, начиная с запуска контейнера клиента VPN как автономного до docker run
?
И что еще более важно, когда у нас будет запущен и подключен контейнер vpnclient
, как мы можем настроить другие контейнеры вРой, чтобы использовать его в качестве шлюза для доступа ко всем IP-адресам в подсети 192.168.2.0/24
?