Я развернул набор mongodb-replica в google cloud vm (решение marketplace) и могу подключиться к нему через browser-s sh, где я создал базу данных и включил accessControl. Однако я не могу подключиться к набору из внешнего мира или из приложения на движке приложения.
моя строка подключения выглядит следующим образом:
mongo "mongodb://[user]:[pass]@35.207.100.1:27017,35.207.100.2:27017/mydb?replicaSet=rs0&authSource=admin"
И вот что я получаю:
2020-03-08T17:27:42.204+0100 I CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to 35.207.100.1:27017
2020-03-08T17:27:42.204+0100 I CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to 35.207.100.2:27017
2020-03-08T17:27:47.209+0100 W NETWORK [ReplicaSetMonitor-TaskExecutor] Unable to reach primary for set rs0
2020-03-08T17:27:47.209+0100 I NETWORK [ReplicaSetMonitor-TaskExecutor] Cannot reach any nodes for set rs0. Please check network connectivity and the status of the set. This has happened for 1 checks in a row.
Что я уже сделал:
- Предоставил каждому экземпляру статический c внешний IP-адрес (он отвечает на эхо-запросы)
Создание правила брандмауэра для входящего (а также исходящего) трафика c на tcp:27017
из 0.0.0.0/0
(попытался ограничить с помощью сетевого тега, а также попытался включить его для всех случаев - без различий в результатах), см. Следующие изображения:
Я также отключил брандмауэр (разрешив все трафик c из всех источников на всех портах во все экземпляры) для целей тестирования, и сообщения об ошибках появлялись намного быстрее, чем раньше, и он пытается соединиться примерно 20 раз - раньше всего 3 раза. Таким образом, кажется, что есть влияние.
my /etc/mongod.conf
имеет следующие записи:
net:
port: 27017
bindIp: 0.0.0.0
replication:
replSetName: rs0
, и эта конфигурация который используется процессом как ps aux
показывает мне:
mongodb 5862 0.4 1.1 1468472 91388 ? SLsl Mar07 5:10 /usr/bin/mongod --config /etc/mongod.conf
Кроме того, все машины находятся в сети по умолчанию
netstat на первичном из набора показывает мне:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 22544/mongod
Кроме того, когда я использую браузер sh для одного из экземпляров, я могу подключиться к набору только через внутренние IP-адреса, но не через внешние IP-адреса.
Я предполагаю, что все еще что-то не так с конфигурацией сети, но я не могу узнать, что это такое.
Что мне здесь не хватает?