Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
100 lines (69 sloc) 3.52 KB
title weight indent
YugabyteDB
900
true

YugabyteDB operator Quikstart

YugaByte DB is a high-performance distributed SQL database (more information here). Rook provides an operator that can create and manage YugabyteDB clusters.

Prerequisites

Follow these instructions to make your kubernetes cluster ready for Rook.

TL;DR

You can create a simple YugabyteDB cluster with below commands. For more detailed instructions, please skip to the Deploy Rook YugabyteDB Operator section.

cd cluster/examples/kubernetes/yugabytedb
kubectl create -f operator.yaml
kubectl create -f cluster.yaml

Use below commands to observe the created cluster.

kubectl -n rook-yugabytedb-system get pods

Deploy Rook YugabyteDB Operator

To begin with, deploy the Rook YugabyteDB operator, which can create/manage the YugabyteDB cluster. Use following commands to do the same.

cd cluster/examples/kubernetes/yugabytedb
kubectl create -f operator.yaml

Observe the rook operator using below command.

kubectl -n rook-yugabytedb-system get pods

Create a simple YugabyteDB cluster

After the Rook YugabyteDB operator is up and running, you can create an object of the custom resource type ybclusters.yugabytedb.rook.io. A sample resource specs are present in cluster.yaml. You can also browse/modify the contents of cluster.yaml according to the configuration options available. Refer YugabyteDB CRD documentation for details on available configuration options.

To create a YugabyteDB cluster, run

kubectl create -f cluster.yaml

Verify the created custom resource object using

kubectl -n rook-yugabytedb get ybclusters.yugabytedb.rook.io

Check if the required replicas of Master & TServer are running, run the following command. Tally the Master & TServer pod count against the corresponding replica count you have in cluster.yaml. With no change to the replica count, you should see 3 pods each for Master & TServer.

kubectl -n rook-yugabytedb get pods

Troubleshooting

Skip this section, if the cluster is up & running. Continue to the Access the Database section to access ysql api.
If the cluster does not come up, first run following command to take a look at operator logs.

kubectl -n rook-yugabytedb-system logs -l app=rook-yugabytedb-operator

If everything is OK in the operator logs, check the YugabyteDB Master & TServer logs next.

kubectl -n rook-yugabytedb logs -l app=yb-master-hello-ybdb-cluster
kubectl -n rook-yugabytedb logs -l app=yb-tserver-hello-ybdb-cluster

Access the Database

After all the pods in YugabyteDB cluster are running, you can access the YugabyteDB's postgres compliant ysql api. Run following command to access it.

kubectl -n rook-yugabytedb exec -it yb-tserver-hello-ybdb-cluster-0 /home/yugabyte/bin/ysqlsh -- -h yb-tserver-hello-ybdb-cluster-0  --echo-queries

Refer the YugabyteDB documentation for more details on the ysql api.

Cleanup

Run the commands below to clean up all resources created above.

NOTE: This will destroy your database and delete all of its data.

kubectl delete -f cluster.yaml
kubectl delete -f operator.yaml

Manually delete any Persistent Volumes that were created for this YugabyteDB cluster.

You can’t perform that action at this time.