Directory.DB
Введение
Данный чарт развертывает базу данных MongoDB (directory-db) в Kubernetes-кластере. Чарт используется для хранения справочников и базы данных каталога.
Версия чарта: 260618.62.385
OCI-репозиторий: cr.yandex/crpt9c7igqasaqddbg0p/backend/directory.db/charts/directory-db
Примечание по Ingress: Для этого сервиса Ingress не используется, так как MongoDB работает как внутренняя база данных и не требует внешнего доступа через HTTP/HTTPS.
Подготовка к развертыванию
Secret'ы
Для развертывания требуется Secret с паролем MongoDB:
Переменные окружения в Deployment:
| Переменная | Значение | Назначение |
|---|---|---|
MONGO_INITDB_DATABASE | directorydb | Имя базы данных MongoDB |
MONGO_INITDB_ROOT_USERNAME | directorydb | Имя пользователя MongoDB |
MONGO_INITDB_ROOT_PASSWORD | (из Secret) | Пароль пользователя MongoDB |
Получение чарта
Из OCI-репозитория
helm pull oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/directory.db/charts/directory-db \
--version 260618.62.385 \
--untar --untardir ./charts
Развертывание
Установка
helm install medikt-directory-db ./charts/directory-db \
--namespace prod \
--create-namespace \
-f ./charts/.values/directory-db_prod.yaml
Обновление
helm upgrade medikt-directory-db ./charts/directory-db \
--namespace prod \
-f ./charts/.values/directory-db_prod.yaml
Удаление
helm uninstall medikt-directory-db --namespace prod
Конфигурация
Основные параметры values.yaml
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
replicaCount | int | 1 | Количество реплик Deployment |
image.repository | string | cr.yandex/crpt9c7igqasaqddbg0p/backend/directory.db | Репозиторий Docker-образа |
image.pullPolicy | string | Always | Политика pulls образа |
image.tag | string | (appVersion) | Тег образа (по умолчанию appVersion) |
imagePullSecrets | array | [{name: "yc-cr-puller"}] | Secret для доступа к OCI-репозиторию |
Секреты и конфиденциальные данные
Пароль MongoDB хранится в Kubernetes Secret. Имя Secretа: directory-db-pwd. Ключ с паролем: password.
Node affinity
По умолчанию чарт настроен на развертывание на нодах с метками:
api_affinity: trueyandex.cloud/preemptible: false
Проверка развертывания
Проверка статуса релиза
helm list --namespace prod | grep directory-db
Проверка Pod'ов
kubectl get pods -n prod -l app.kubernetes.io/name=directory-db
Проверка Service
kubectl get service medikt-directory-db -n prod
Проверка Deployment
kubectl get deployment medikt-directory-db -n prod
Проверка логов
kubectl logs -n prod -l app.kubernetes.io/name=directory-db --tail=100
Проверка подключения к MongoDB
Так как сервис не имеет Ingress, для проверки можно использовать порт-форвардинг: В терминале A:
kubectl port-forward -n prod service/medikt-directory-db 27017:27017
В терминале B:
mongo --host localhost -u directorydb -p <пароль>
test> use directorydb
switched to db directorydb
directorydb> db.getCollectionNames()
[
'universities',
'cities',
'categories',
'utc',
'emailTemplates',
'operationCodes',
'specialities',
'questionsAndAnswers'
]
После проверки завершить выполнение формвардинга в терминале A.