diff options
author | olegbondar <olegbondar@yandex-team.ru> | 2022-03-23 14:17:39 +0300 |
---|---|---|
committer | olegbondar <olegbondar@yandex-team.ru> | 2022-03-23 14:17:39 +0300 |
commit | ea82b3450005272f1a406cf1eac7a245c2e7c1ee (patch) | |
tree | 40f5ee93991a86ea7d0f19075abc94ad18e24ec7 | |
parent | 487e08c67742f8b922086c123e2ed1e08d6e8080 (diff) | |
download | ydb-ea82b3450005272f1a406cf1eac7a245c2e7c1ee.tar.gz |
Add minikube docs
ref:250b190297dac5a384fafa34ebeb2ed77ee441d0
-rw-r--r-- | ydb/docs/ru/core/getting_started/self_hosted/_includes/ydb_minikube.md | 212 |
1 files changed, 211 insertions, 1 deletions
diff --git a/ydb/docs/ru/core/getting_started/self_hosted/_includes/ydb_minikube.md b/ydb/docs/ru/core/getting_started/self_hosted/_includes/ydb_minikube.md index b2588d3683..ee480e06d5 100644 --- a/ydb/docs/ru/core/getting_started/self_hosted/_includes/ydb_minikube.md +++ b/ydb/docs/ru/core/getting_started/self_hosted/_includes/ydb_minikube.md @@ -1,3 +1,213 @@ # Запуск {{ ydb-short-name }} в Minikube -Статья находится в разработке.
\ No newline at end of file + +Чтобы с помощью [Minikube](https://kubernetes.io/ru/docs/tasks/tools/install-minikube/) создать кластер {{ ydb-short-name }}, выполните следующие действия. + +## Перед началом работы {#before-begin} + +1. Установите {{ k8s }} CLI [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl). +1. Установите и запустите [Minikube](https://kubernetes.io/ru/docs/tasks/tools/install-minikube/). +1. Установите менеджер пакетов {{ k8s }} [Нelm 3](https://helm.sh/docs/intro/install/). +1. Склонируйте репозиторий с ```ydb-kubernetes-operator``` + + ```bash + git clone https://github.com/ydb-platform/ydb-kubernetes-operator && cd ydb-kubernetes-operator + ``` + +# Установка кластера + +## Установите контроллер {{ ydb-short-name }} в кластер {#install-ydb-controller} + +Установите {{ ydb-short-name }} в стандартной конфигурации: + +{% list tabs %} + +- CLI + + Выполните команду: + + ```bash + helm upgrade --install ydb-operator deploy/ydb-operator --set metrics.enabled=false + ``` + + * `ydb-operator` — имя релиза; + * `ydb/operator` — название чарта в добавленном ранее репозитории. + + Результат выполнения: + + ```text + 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 + ``` + +{% endlist %} + +## Создайте кластер {{ ydb-short-name }} {#create-cluster} + +Примените манифест для создания кластера {{ ydb-short-name }}: + +{% list tabs %} + +- CLI + + Выполните команду: + + ```bash + kubectl apply -f samples/minikube/storage.yaml + ``` + + Эта команда создаст объект StatefulSet, который описывает набор контейнеров с предсказуемыми сетевыми именами и закрепленными за ними дисками, а также необходимые для работы кластера объекты Service и ConfigMap. + + Прогресс создания кластера {{ ydb-short-name }} можно посмотреть с помощью следующих команд: + + ```bash + kubectl get storages.ydb.tech + kubectl describe storages.ydb.tech + ``` + + Дождитесь, когда ресурс типа Storage перейдет в состояние `Ready`. + +{% endlist %} + +{% note warning %} + +Конфигурация кластера статична, контроллер не будет обрабатывать изменения при повторном применении манифеста. Изменение таких параметров кластера, как версия или размер дисков, возможно только через пересоздание кластера. + +{% endnote %} + +## Создайте базу данных {#create-database} + +Примените манифест для создания базы данных: + +{% list tabs %} + +- CLI + + Выполните команду: + + ```bash + kubectl apply -f samples/minikube/database.yaml + ``` + + После обработки манифеста будет создан объект StatefulSet, который описывает набор динамических нод. Созданная БД будет доступна изнутри {{ k8s }} кластера по DNS-имени `database-minikube-sample`. Порт для подключения к БД — `2135`. + + Посмотрите статус созданного ресурса: + + ```bash + 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 + ``` + + База данных готова к работе. + +{% endlist %} + +## Проверьте работу {#test-ydb} + +Проверьте работоспособность {{ ydb-short-name }}: + +{% list tabs %} + +- CLI + + 1. Проверьте, что все узлы в состоянии `Ready`: + + ```bash + 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 + ``` + + 1. Перенаправьте порт 2135: + + ```bash + kubectl port-forward database-minikube-sample-0 2135 + ``` + + 1. Установите {{ ydb-short-name }} CLI, как описано в статье [Установка {{ ydb-short-name }} CLI](../../../reference/ydb-cli/install.md). + + + 1. Выполните запрос к базе данных {{ ydb-short-name }}: + + ```bash + ydb \ + --endpoint grpc://localhost:2135 \ + --database /Root/database-minikube-sample \ + table query execute --query 'select 1;' + ``` + + * `--endpoint` — эндпоинт базы данных; + * `--database` — имя созданной базы данных; + * `--query` — текст запроса. + + Результат выполнения: + + ```text + ┌─────────┐ + | column0 | + ├─────────┤ + | 1 | + └─────────┘ + ``` + + Подробнее о командах {{ ydb-short-name }} CLI читайте в [документации](../../../reference/ydb-cli/index.md). + +{% endlist %} + +## Освободите неиспользуемые ресурсы {#cleanup} + +Если созданные ресурсы больше не нужны, удалите их: + +{% list tabs %} + +- CLI + + 1. Чтобы удалить базу данных {{ ydb-short-name }}, достаточно удалить сопоставленный с ней ресурс `Database`: + + ```bash + kubectl delete database.ydb.tech database-minikube-sample + ``` + + 1. Чтобы удалить кластер {{ ydb-short-name }}, выполните следующие команды: + + ```bash + kubectl delete storage.ydb.tech storage-minikube-sample + ``` + + 1. Чтобы удалить контроллер {{ ydb-short-name }} из кластера {{ k8s }}, удалите релиз, созданный Helm: + + ```bash + helm delete ydb-operator + ``` + + * `ydb-operator` — имя релиза, с которым был установлен контроллер. + +{% endlist %} + |