Запуск YDB в Minikube

Чтобы с помощью Minikube создать кластер YDB, выполните следующие действия.

Перед началом работы

  1. Установите Kubernetes CLI kubectl.

  2. Установите и запустите Minikube.

  3. Установите менеджер пакетов Kubernetes Нelm 3.

  4. Склонируйте репозиторий с 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:

  1. Проверьте, что все узлы в состоянии 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      
    
  2. Перенаправьте порт 2135:

    kubectl port-forward database-minikube-sample-0 2135
    
  3. Установите YDB CLI, как описано в статье Установка YDB CLI.

  4. Выполните запрос к базе данных YDB:

    ydb \
      --endpoint grpc://localhost:2135 \
      --database /Root/database-minikube-sample \
      table query execute --query 'select 1;'
    
    • --endpoint — эндпоинт базы данных;
    • --database — имя созданной базы данных;
    • --query — текст запроса.

    Результат выполнения:

    ┌─────────┐
    | column0 |
    ├─────────┤
    | 1       |
    └─────────┘
    

    Подробнее о командах YDB CLI читайте в документации.

Освободите неиспользуемые ресурсы

Если созданные ресурсы больше не нужны, удалите их:

  1. Чтобы удалить базу данных YDB, достаточно удалить сопоставленный с ней ресурс Database:

    kubectl delete database.ydb.tech database-minikube-sample
    
  2. Чтобы удалить кластер YDB, выполните следующие команды:

    kubectl delete storage.ydb.tech storage-minikube-sample
    
  3. Чтобы удалить контроллер YDB из кластера Kubernetes, удалите релиз, созданный Helm:

    helm delete ydb-operator
    
    • ydb-operator — имя релиза, с которым был установлен контроллер.