Назад | Перейти на главную страницу

Как открыть и получить доступ к портам MongoDb в Kubernetes?

Я развернул mongoDB на Kubernetes. База данных настроена правильно, и к ней можно получить доступ, используя ее внутреннее DNS-имя.

Мне нужно показать это внешнему миру. Я использовал порт узла / балансировщик нагрузки, чтобы открыть порт 27017, но я не могу подключиться к порту с помощью IP: port. Не сталкивался с проблемой с веб-приложениями, использующими IP: Port, не знаю, как это сделать для базы данных.

Если попытался открыть браузер, http: // Kubernetes_Public_IP: NodePort дает мне следующее сообщение об ошибке - Похоже, вы пытаетесь получить доступ к MongoDB через HTTP через собственный порт драйвера.

Я использую robomongo для подключения к базе данных. С помощью RoboMongo, установив Address на Kubernetes Public IP, а Port на NodePort, я получаю следующую ошибку: Невозможно подключиться к Kubernetes_Public_IP: NodePort

Нужна помощь в открытии порта и подключении к нему с помощью любого агента (robomongo не требуется).

В Kubernetes, если вы хотите открыть порт для внешнего мира, вы можете использовать Service с типом NodePort или LoadBalancer.

Тип LoadBalancer обычно используется у облачных провайдеров, поскольку они предоставляют внешние балансировщики нагрузки для Kubernetes.

Итак, в вашем случае NodePort - это самый простой способ раскрыть порт. Вот пример службы YAML:

kind: Service
apiVersion: v1
metadata:
  name: mongodb-service
spec:
  type: NodePort
  selector:
    app: mongodb
  ports:
    - port: 27017
      nodePort: 32463 
      name: MongoPort

В линию port: 27017, мы указали ваш порт MongoDB, он также обычно указывается в Deployment for MongoDB.

В линию nodePort: 32463, мы указали внешний порт. Туда можно выложить любой порт из диапазона 30000-32767. Или его можно пропустить во время создания, в этом случае Kubernetes назначает номер порта автоматически, и вы можете найти его, используя kubectl describe service mongodb-service или kubectl get service mongodb-service -o yamlкоманды.

После этого вы можете использовать любой клиент, например RoboMongo, чтобы связаться с вами, MongoDB. Вам нужно использовать IP-адрес любого узла и порт из nodePort линия, а не от port линия.

Например, если у вас есть кластер с тремя узлами с внешними IP-адресами 12.13.14.151, 12.13.14.152, 12.13.14.153, вы можете использовать любой из 12.13.14.151:32463, 12.13.14.152:32463, 12.13.14.153:32463 в настройках подключения к RoboMongo.

Для получения дополнительной информации об Услугах вы можете перейти по следующей ссылке:

Издательские услуги - виды услуг