Запуск YDB в Minikube
Чтобы с помощью Minikube создать кластер YDB, выполните следующие действия.
Перед началом работы
-
Установите Kubernetes CLI kubectl.
-
Установите и запустите Minikube.
-
Установите менеджер пакетов Kubernetes Нelm 3.
-
Склонируйте репозиторий с ydb-kubernetes-operator.
git clone https://github.com/ydb-platform/ydb-kubernetes-operator && cd ydb-kubernetes-operator
Установка кластера
Установите контроллер YDB в кластер
Установите YDB в стандартной конфигурации:
Выполните команду:
helm upgrade --install ydb-operator deploy/ydb-operator --set metrics.enabled=false
ydb-operator
— имя релиза;ydb/ydb-operator
— название чарта в добавленном ранее репозитории.
Результат выполнения:
Release "ydb-operator" does not exist. Installing it now.
NAME: ydb-operator
LAST DEPLOYED: Tue Mar 22 08:54:08 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
Создайте кластер YDB
Примените манифест для создания кластера YDB:
Выполните команду:
kubectl apply -f samples/minikube/storage.yaml
Эта команда создаст объект StatefulSet, который описывает набор контейнеров с предсказуемыми сетевыми именами и закрепленными за ними дисками, а также необходимые для работы кластера объекты Service и ConfigMap.
Прогресс создания кластера YDB можно посмотреть с помощью следующих команд:
kubectl get storages.ydb.tech
kubectl describe storages.ydb.tech
Дождитесь, когда ресурс типа Storage перейдет в состояние Ready
.
Важно
Конфигурация кластера статична, контроллер не будет обрабатывать изменения при повторном применении манифеста. Изменение таких параметров кластера, как версия или размер дисков, возможно только через пересоздание кластера.
Создайте базу данных
Примените манифест для создания базы данных:
Выполните команду:
kubectl apply -f samples/minikube/database.yaml
После обработки манифеста будет создан объект StatefulSet, который описывает набор динамических нод. Созданная БД будет доступна изнутри Kubernetes кластера по DNS-имени database-minikube-sample
. Порт для подключения к БД — 2135
.
Посмотрите статус созданного ресурса:
kubectl describe database.ydb.tech
Name: database-sample
Namespace: default
Labels: <none>
Annotations: <none>
API Version: ydb.tech/v1alpha1
Kind: Database
...
Status:
...
State: Ready
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Provisioning 6m32s ydb-operator Resource: *v1.ConfigMap, Namespace: default, Name: database-minikube-sample, changed, result: created
Normal Provisioning 6m32s ydb-operator Resource: *v1.Service, Namespace: default, Name: database-minikube-sample-grpc, changed, result: created
Normal Provisioning 6m32s ydb-operator Resource: *v1.Service, Namespace: default, Name: database-minikube-sample-interconnect, changed, result: created
Normal Provisioning 6m32s ydb-operator Resource: *v1.Service, Namespace: default, Name: database-minikube-sample-status, changed, result: created
Normal Provisioning 6m32s ydb-operator Resource: *v1.StatefulSet, Namespace: default, Name: database-minikube-sample, changed, result: created
Normal Initialized 6m31s ydb-operator Tenant /Root/database-minikube-sample created
Normal ResourcesReady 6m30s ydb-operator Resource are ready and DB is initialized
База данных готова к работе.
Проверьте работу
Проверьте работоспособность YDB:
-
Проверьте, что все узлы в состоянии
Ready
:kubectl get pods NAME READY STATUS RESTARTS AGE database-minikube-sample-0 1/1 Running 0 9m33s storage-minikube-sample-0 1/1 Running 0 11m ydb-operator-6fc76b5b68-q269l 1/1 Running 0 12m
-
Перенаправьте порт 2135:
kubectl port-forward database-minikube-sample-0 2135
-
Установите YDB CLI, как описано в статье Установка YDB CLI.
-
Выполните запрос к базе данных YDB:
ydb \ --endpoint grpc://localhost:2135 \ --database /Root/database-minikube-sample \ table query execute --query 'select 1;'
--endpoint
— эндпоинт базы данных;--database
— имя созданной базы данных;--query
— текст запроса.
Результат выполнения:
┌─────────┐ | column0 | ├─────────┤ | 1 | └─────────┘
Подробнее о командах YDB CLI читайте в документации.
Освободите неиспользуемые ресурсы
Если созданные ресурсы больше не нужны, удалите их:
-
Чтобы удалить базу данных YDB, достаточно удалить сопоставленный с ней ресурс
Database
:kubectl delete database.ydb.tech database-minikube-sample
-
Чтобы удалить кластер YDB, выполните следующие команды:
kubectl delete storage.ydb.tech storage-minikube-sample
-
Чтобы удалить контроллер YDB из кластера Kubernetes, удалите релиз, созданный Helm:
helm delete ydb-operator
ydb-operator
— имя релиза, с которым был установлен контроллер.