Как получить доступ к репликатору mongodb, размещенному в кластере kubernetes, снаружи? - PullRequest
0 голосов
/ 13 сентября 2018

Кластер, созданный в Rancher с Amazon EKS.

Репликаз MongoDB был создан как приложение каталога в Rancher.

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

mongodb://mongodb-replicaset.mongodb-replicaset.svc.cluster.local:27017/tradeit_system?replicaSet=rs

Я хочу просматривать и редактировать данные в БД.В локальной базе данных вы можете сделать это легко с помощью команды mongo --port 27017.

Точно так же есть способ подключиться к одному на kubernetes.Либо из терминала, либо с помощью приложения, такого как Robo 3t?

EDIT

Репликация не отображается, когда я это делаю.

kubectl get deployments --all-namespace

kubectl get pods --all-namespaces

Показать, что он работает в 3 пакетах: mongodb-replicaset-0, mongodb-replicaset-1, mongodb-replicaset-2.

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

kubectl port-forward mongodb-replicaset-0 --namespace mongodb-replicaset 27017:27017

mongodb-replicaset-0 - модуль, который запускает основной набор.

Это перенаправляет трафик на localhost:27017 на вашем компьютере.

Обсуждение Github

Документация по переадресации порта

0 голосов
/ 07 августа 2019
  1. пробег kubectl get services -n <namespace>. это перечислит службу репликации
  2. Выполнить kubectl port-forward svc/mongodb-replicaset -n mongoNamespace 27018:27017

, где

mongodb-replicaset = имя службы mongodb

mongoNamespace = пространство имен

и 27018 = ваш локальный порт

Рекомендуется всегда подключаться к службам, а не к пакетам. Поскольку модули автоматически воссоздаются / перезапускаются, вы получите новое имя модуля. Подключение к службе избавляет вас от повторного подключения и поиска основного модуля вашего репликации mongodb.

0 голосов
/ 13 сентября 2018

После того, как вы выполните kubectl get pods, вы увидите название ваших модулей.

Вы можете подключиться к любому модулю, используя эту команду: kubectl exec -it POD_NAME /bin/bash. Также проверьте документы на Выполните команду в контейнере .

Также, после подключения к POD, вы можете проверить, где находится монго, используя whereis mongo.

Я думаю, что установка по умолчанию находится в /usr/bin/mongo, поэтому, будучи подключенным к вашему кластеру, вы можете вызывать mongo напрямую из любого модуля, который вам нравится, используя kubectl exec -it POD_NAME /usr/bin/mongo.

...