ydb-platform / ydb-python-sdk

YDB Python SDK
https://ydb-platform.github.io/ydb-python-sdk/
Apache License 2.0
87 stars 50 forks source link

feature: Run SLO tests over kubernetes inside github action worker #456

Open rekby opened 4 months ago

rekby commented 4 months ago
rekby commented 4 months ago

Assigneed to @Nikita-Levuskin

Nikita-Levuskin commented 3 months ago

Запустить YDB в k8s(minikube) локально:

установить kubectl:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

установить Helm 3:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

установить и запустить Minikube:

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
  && chmod +x minikube
mkdir -p /usr/local/bin/
install minikube /usr/local/bin/
minikube start

или если можно отдать максимум ресурсов

minikube start --memory=max --cpus=max

склонировать репозиторий ydb-kubernetes-operator:

git clone https://github.com/ydb-platform/ydb-kubernetes-operator && cd ydb-kubernetes-operator

Установите на кластер контроллер YDB:

helm install ydb-operator ydb/ydb-operator

Примените манифест для создания кластера YDB:

В конфиге заменить строки относящиеся к dataStore на dataStore: [] (DataStore это про монтирование ресурсов pv/pvc для подов ydb, в миникубе они по умолчанию не настроены)

kubectl apply -f samples/storage-block-4-2.yaml 
kubectl describe storages.ydb.tech 

дождаться пока будет статус Ready

Примените манифест для создания базы данных:

kubectl apply -f samples/database.yaml 
kubectl describe database.ydb.tech 

дождаться пока будет статус Ready

Открыть порт для мониторинга:

kubectl port-forward database-sample-0 8765

инфа отсюда:

https://ydb.tech/docs/ru/quickstart https://ydb.tech/docs/ru/devops/kubernetes/initial-deployment