#docker #docker-swarm
Вопрос:
У меня небольшой VPS. У этого VPS мало ресурсов, поэтому я хочу расширить его с помощью небольшого серверного ПК, который у меня есть дома. Я хочу избежать пересылки каких-либо портов с моего маршрутизатора, потому что я не хочу открывать свою частную сеть в Интернет. Поэтому я хотел использовать Docker для создания контейнеров на моем домашнем сервере и подключения их к vps, чтобы они были доступны из Интернета. Я новичок в мире Докеров, так что, возможно, эти подходы неверны, но для меня они имели смысл.
Подход 1. Использование VPN-контейнера для подключения сетей. Я хотел запустить сервер Wireguard на VPS и клиент Wireguard на домашнем сервере. Проблема заключалась в том, что я запускаю Docker с WSL, и поэтому Wireguard не поддерживается. Я мог бы использовать OpenVPN, но это выглядело сложнее, поэтому я переключился на Подход 2.
Подход 2: Использование оверлейной сети. Это казалось правильным решением, но я не могу заставить его работать. Я создал рой и своего VPS в качестве его менеджера. Сначала я попытался подключить свой домашний сервер в качестве второго менеджера, но в нем говорилось, что некоторые функции rpc недоступны. Но в рабочем режиме он подключался без проблем. Я установил Portainer, и он также работает. Затем я создал стек, подобный этому:
version: "3.2"
services:
nginx:
image: nginx
container_name: nginx
restart: always
deploy:
placement:
constraints:
- "node.id==###homeserver nodeid###"
networks:
- testnet
ports:
- target: 80
published: 44444
protocol: tcp
mode: ingress
networks:
testnet:
driver: overlay
но я не могу подключиться через общедоступный ip-адрес и порт 44444. Также, когда я проверяю созданную сетевую тестовую сеть в portainer, подключенных контейнеров нет. Но если я загляну в сеть портейнера, там будет указан удаленный агент и хост. Я предполагаю, что проблема будет заключаться в следующем:
Open protocols and ports between the hosts
The following ports must be available. On some systems, these ports
are open by default.TCP port 2377 for cluster management communications TCP and UDP port 7946 for communication among nodes UDP port 4789 for overlay network traffic
- Документация по рою
Поэтому мне нужно будет открыть эти порты на моем маршрутизаторе, и для этого я вернусь к началу..
Поэтому мои вопросы таковы:
- Я что-то упускаю в своих подходах?
- Если бы они были чепухой, как бы вы решили эту проблему?
Спасибо, Феликс