Контекст
Я использую GCP , более конкретно GKE , чтобы развернуть мое приложение в контейнере / контейнере. Приложение, которое я пытаюсь развернуть, находится в node js (express js). Это приложение подключается к MongoDB Atlas (бесплатный уровень M0) .
Нет проблем при локальном запуске проекта. Он подключается к базе данных, и я могу добавлять / удалять документы без проблем.
Я позволил своему атласному кластеру MongoDB получить доступ любому (0.0.0.0/0), чтобы упростить отладку.
Когда я развертываю свой проект с моим CI / CD Deploy в GKE, все идет гладко.
Проблема
Все становится сложнее, когда я развернул мой проект. Я получаю CrashLoopBackOff . После проверки журналов происходит сбой, вот что я нашел:
error: Server selection timed out after 30000 ms {"name":"MongooseTimeoutError","reason":{"name":"MongoNetworkError"}}
Leads
Я считаю, что проблема в том, что мой модуль не может подключиться к MongoDB Atlas через его обычный порт 27017, отправив мне сообщение об ошибке тайм-аута.
Вот что я пробовал:
Добавление в мой VP C сети в GCP нового правила брандмауэра : gcloud compute firewall-rules create allow-mongodb --allow tcp:27017
Добавление в мой deploy.yml следующего ключа / значения: dnsPolicy: Default
Заключение
Потратив часы на решение этой проблемы, я все еще не нашел никаких решений, и у меня заканчиваются идеи , К вашему сведению, я новичок в GCP и в Kubernetes, поэтому я мог бы пропустить что-то большое здесь, но не уверен, что.
Если какой-нибудь добрый человек попадет на этот пост и узнает ответ, я был бы рад, если он / она могла бы помочь мне здесь.
Хорошего вам.
Приветствия,