Разговор с контейнером на Кубернетес (ГКЭ) из другого контейнера - PullRequest
1 голос
/ 31 мая 2019

У меня есть API, написанный на Express, который подключается к Mongo контейнеру.Когда я раскручиваю их локально, я могу подключиться к экземпляру mongo, используя что-то вроде mongodb://${DB_HOST}:${DB_PORT}/${DB_NAME} и установив .env переменные.

Что я пытаюсь понять, когда это будет развернуто в GKE, как мойAPI соединяется с контейнером / модулем Монго?

Он не будет работать на локальном хосте, я полагаю, поэтому, возможно, мне нужно будет использовать созданный внутренний IP?

Должно ли оно на самом деле подключаться через service?Как бы выглядела эта служба?

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

Я свободен в новинку для GKE так что любые примеры помогут очень сильно.

Ответы [ 2 ]

2 голосов
/ 31 мая 2019

Создайте развертывание mongodb и службу mongodb типа ClusterIP, что в основном означает, что ваш API сможет подключаться к БД внутри.Если вы хотите подключить вашу базу данных извне, создайте службу типа LoadBalancer или другие типы служб (см. здесь )

С помощью службы типа ClusterIP, скажем, вы даете ей name из mongodbservice под ключом metadata.Тогда ваш API может подключиться к нему на mongodb://mongodbservice:${DB_PORT}/${DB_NAME}

1 голос
/ 01 июня 2019

Вы захотите развернуть mongodb, возможно, как StatefulSet, чтобы он мог использовать стабильное постоянное хранилище. Вам необходимо настроить StorageClass для постоянного хранилища. Тогда вы захотите выставить его как Сервис. Вот пример на kubernetes.io

Если вы используете Helm (подсказка, сделайте это), это будет намного проще. Вы можете начать работу с одной командой

helm install stable/mongodb

Выходные данные установки helm содержат некоторые полезные инструкции для подключения к вашему новому кластеру mongodb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...