GKE с удаленной базой данных - PullRequest
0 голосов
/ 02 февраля 2019

Во-первых, для моего вопроса мне нужно немного рассказать о моей среде:

  1. Базовая настройка Google: 1x f1-micro экземпляр с 3 узлами

  2. Настройка Kubernetes: nginx-ingress-controller, cert-manager, 1 -обэкэнд-сервис с развертыванием, 1 -фронтэнд-сервис с развертыванием.

  3. Настройка Монго-Атласа: 3 -replicaSet

Установка не должна быть продолжительной, но она может вызвать некоторые сценарии.

ОК, пусть возникает проблема, мой бэкэнд Nodejs использует следующий URL для подключения к базе данных MonglAtlas :

MONGODB_URI=mongodb+srv://username:pwd@mongotoken-66gqa.gcp.mongodb.net/test?retryWrites=true

IP Белый список - это мой статический публичный IPкоторые используют nginx-ingress для маршрутизации.Позвольте мне определить my.domain для моей веб-страницы и my.domain/api/ для API-интерфейса сервера.

Все нормально, когда белый список IP-адресов разрешен доступ из любого места , а бэкэнд может без сомнения подключаться к базе данных MongoAtlas.

Но когда я удаляю эту опцию и добавляюIP-адрес, который соответствует my.domain (двойная проверка, я пинг my.domain - это абсолютно тот же IP-адрес), а затем бэкэнд не смог найти базу данных со следующей ошибкой:

MongoNetworkError: connection 4 to closed https....

Если что-то не хватает, пожалуйста, дай мне знать.Любой совет приветствуется!

Еще одним подозрением является то, что я получил 1 статический IP и 3 эфемерный IP в сети VPC.Я предполагаю, что это означает 3 узла с IP loadbalancer.Если бэкэнд использует эфемерный IP для подключения к бэкенду MongoAtlas, я должен проверить модуль, в котором узлы, и сделать этот узел статичным, но это не имеет смысла для Kubernetes.Я надеюсь, что есть другое решение: (

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Я использовал решение NAT .Идея состоит в том, чтобы установить 1- Google Compute Engine Instance в качестве шлюза NAT и отобразить весь выход на статический ip.О, самое главное, все вышеперечисленные шаги не требуют ручной настройки, просто следуйте документации, и все должно работать как положено.

Если есть проблема STATIC_ADDRESS QUOTA ,Вы можете изменить свою ЗОНУ и РЕГИОН на любую оставшуюся КВОТУ область.В моем случае, мы - центральные, как NAT, а мы - западные, как Original Service.

0 голосов
/ 02 февраля 2019

Входящий и исходящий трафик проходит разными путями.

Когда вы подключаетесь к входу, ваш трафик проходит через балансировщик нагрузки со статическим IP-адресом (надеюсь, вы используете вход с типом службы «Балансировщик нагрузки»).

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

...