Skip to content

Resource nubes_mongodb · v1.0.0 · Service ID: 92 · Service Name: MongoDB

Manual · Create params · Modify params · Output params · Operations · Example

Сервис MongoDB (nubes_mongodb). См. Create params для списка параметров.

Справка (MAN)

Инструкция по развертыванию MongoDB через платформу

1. Общая информация

MongoDB — документоориентированная распределённая база данных, обеспечивающая высокую доступность, горизонтальное масштабирование и гибкую модель хранения.

Доступные операции с кластером

  • create — создание базы
  • delete — удаление базы данных
  • suspend — остановка базы данных
  • resume — запуск базы данных
  • modify — изменение базы данных

Доступные операции с пользователями

  • create_user — создание пользователя
  • modify_user — модификация пользователя
  • delete_user — удаление пользователя

2. Параметры развертывания базы данных

Эти параметры необходимо указать при создании базы данных.

Платформа для развертывания

Среда, в которой будет развернут кластер. Выбирается из предложенного списка.

Количество узлов

Количество реплик в кластере MongoDB. Оптимально выбирать нечётное значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.

Примечание: уменьшение количества узлов после создания кластера не рекомендуется.

Квота памяти пода (MB)

Объём памяти для одного пода в мегабайтах. Пример: 2048

Квота CPU пода (mCPU)

CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU). Пример: 1000

Размер диска для базы данных (GB)

Объём диска для хранения данных в гигабайтах. Пример: 20

Имя ipSpace для публикации внешнего IP

Имя ipSpace, через который будет выделен внешний IP для доступа к master-узлу. Укажите no-needed, если внешний адрес не требуется. Пример: internet-no-antiddos-v1

Список разрешённых IP-адресов

Список IP-адресов или подсетей, с которых разрешён доступ к кластеру. Если оставить пустым — доступ открыт для всех источников. Пример: ["10.0.0.0/24", "192.168.1.10/32"]


3. Параметры модификации базы данных

Все параметры, которые вы указываете при модификации, являются необязательными — система автоматически подставит ранее сохранённые значения, и при необходимости вы можете изменить их на нужные.

Количество узлов

Количество реплик в кластере MongoDB. Оптимально выбирать нечётное значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.

Примечание: уменьшение количества узлов после создания кластера не рекомендуется.

Квота памяти пода (MB)

Объём памяти для одного пода в мегабайтах. Пример: 2048

Квота CPU пода (mCPU)

CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU). Пример: 1000

Размер диска для базы данных (GB)

Объём диска для хранения данных указывается в гигабайтах. Его можно увеличить при необходимости, однако уменьшить уже выделенный размер невозможно. Пример: 20

Имя ipSpace для публикации внешнего IP

Имя ipSpace, через который будет выделен внешний IP для доступа к master-узлу. Укажите no-needed, если внешний адрес не требуется. Пример: internet-no-antiddos-v1

Список разрешённых IP-адресов

Список IP-адресов или подсетей, с которых разрешён доступ к кластеру. Если оставить пустым — доступ открыт для всех источников. Пример: ["10.0.0.0/24", "192.168.1.10/32"]


3. Параметры создания пользователя

Имя пользователя

Указывается имя пользователя (любой регистр). Пример: readApp

Имя базы данных

Название базы, в которой будет создан пользователь. Если база отсутствует, она будет создана автоматически. Пример: Apps_9392

Имя роли

  • read — доступ только на чтение
  • readWrite — чтение и изменение данных
  • dbOwner — полный контроль над базой данных

4. Параметры модификации пользователя

Имя пользователя

Необходимо выбрать существующего пользователя. Если список пуст, требуется предварительно создать пользователя.

Имя базы данных

База данных, к которой относится пользователь. Если база отсутствует, она будет создана автоматически. Пример: Apps_9392

Имя роли

  • read
  • readWrite
  • dbOwner

5. Параметры удаления пользователя

Имя пользователя

Выберите пользователя из списка для удаления.


6. Выходные параметры

После успешного развертывания базы данных платформа возвращает ключевые параметры.

internalConnect

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

externalConnect

Внешний FQDN для подключения к кластеру извне. Порт подключения — 27017.


7. Пример подключения

Перед подключением необходимо установить mongosh.

7.1 Подключение без TLS

Для внутреннего подключения из той же сети:

mongosh "mongodb://<username>:<password>@<endpoint_db>:27017/<dbName>?authSource=admin"

7.2 Подключение через внешний endpoint с TLS

Кластер требует клиентский TLS-сертификат (mutual TLS). Сертификаты сохраняются в Vault при создании кластера в блоке cer в полях ca, cer, key в кодировке base64.

Подготовка файлов:

# Декодировать сертификаты из Vault
echo "<ca из Vault>" | base64 -d > ca.crt
echo "<cer из Vault>" | base64 -d > tls.crt
echo "<key из Vault>" | base64 -d > tls.key

# Собрать клиентский PEM
cat tls.key tls.crt > client.pem

Подключение:

mongosh "mongodb://<username>:<password>@<external_endpoint_db>:27017/<dbName>?tls=true&tlsCAFile=ca.crt&tlsCertificateKeyFile=client.pem&tlsAllowInvalidHostnames=true&authSource=admin"

Где:

  • <username> — имя пользователя
  • <password> — пароль
  • <endpoint_db> — internalConnect (для подключения без TLS)
  • <external_endpoint_db> — externalConnect (для внешнего подключения с TLS)
  • <dbName> — имя базы данных

8. Дополнительная информация

Кластер разворачивается с включённым TLS (tls.mode: allowTLS). Сервер принимает как обычные, так и TLS-соединения.

При TLS-подключении (особенно через внешний endpoint) требуется клиентский сертификат. Автоматически сгенерированный сертификат содержит только внутренние DNS-имена кластера, поэтому для внешнего подключения используется tlsAllowInvalidHostnames=true. Для production-использования рекомендуется выпустить сертификат с SAN, включающим внешнее имя write.<namespace>.