Deploy GreptimeDB Standalone
In this guide, you will learn how to deploy a GreptimeDB standalone on Kubernetes.
The following output may have minor differences depending on the versions of the Helm charts and environment.
Prerequisites
Create a test Kubernetes cluster
Using kind
is not recommended for production environments or performance testing. For such use cases, we recommend using cloud-managed Kubernetes services such as Amazon EKS, Google GKE, or Azure AKS, or deploying your own production-grade Kubernetes cluster.
There are many ways to create a Kubernetes cluster for testing purposes. In this guide, we will use kind to create a local Kubernetes cluster. You can skip this step if you want to use the existing Kubernetes cluster.
Here is an example using kind
v0.20.0:
kind create cluster
Expected Output
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.27.3) 🖼
✓ Preparing nodes 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
Set kubectl context to "kind-kind"
You can now use your cluster with:
kubectl cluster-info --context kind-kind
Not sure what to do next? 😅 Check out https://kind.sigs.k8s.io/docs/user/quick-start/
Add the Greptime Helm repository
We provide the official Helm repository for the GreptimeDB Operator and GreptimeDB cluster. You can add the repository by running the following command:
helm repo add greptime https://greptimeteam.github.io/helm-charts/
helm repo update
Check the charts in the Greptime Helm repository:
helm search repo greptime/greptimedb-standalone
Expected Output
NAME CHART VERSION APP VERSION DESCRIPTION
greptime/greptimedb-standalone 0.1.53 0.14.3 A Helm chart for deploying standalone greptimedb
Install the GreptimeDB Standalone
Basic Installation
For a quick start with default configuration:
helm upgrade --install greptimedb-standalone greptime/greptimedb-standalone -n default
Expected Output
Release "greptimedb-standalone" does not exist. Installing it now.
NAME: greptimedb-standalone
LAST DEPLOYED: Mon May 26 08:06:54 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
***********************************************************************
Welcome to use greptimedb-standalone
Chart version: 0.1.53
GreptimeDB Standalone version: 0.14.3
***********************************************************************
Installed components:
* greptimedb-standalone
The greptimedb-standalone is starting, use `kubectl get statefulset greptimedb-standalone -n default` to check its status.
kubectl get pod -n default
Expected Output
NAME READY STATUS RESTARTS AGE
greptimedb-standalone-0 1/1 Running 0 40s
Customized Installation
For production or customized deployments, create a values.yaml
file:
resources:
requests:
cpu: "2"
memory: "4Gi"
limits:
cpu: "4"
memory: "8Gi"
For more configuration options, please refer to the documentation.
Then install with custom values:
helm upgrade --install greptimedb-standalone greptime/greptimedb-standalone \
--values values.yaml \
--namespace default
Expected Output
Release "greptimedb-standalone" has been upgraded. Happy Helming!
NAME: greptimedb-standalone
LAST DEPLOYED: Mon May 26 08:18:27 2025
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
***********************************************************************
Welcome to use greptimedb-standalone
Chart version: 0.1.53
GreptimeDB Standalone version: 0.14.3
***********************************************************************
Installed components:
* greptimedb-standalone
The greptimedb-standalone is starting, use `kubectl get statefulset greptimedb-standalone -n default` to check its status.
kubectl get pod -n default
Expected Output
NAME READY STATUS RESTARTS AGE
greptimedb-standalone-0 1/1 Running 0 3s
Access GreptimeDB
After installation, you can access GreptimeDB through:
MySQL Protocol
kubectl port-forward svc/greptimedb-standalone 4002:4002 -n default > connections.out &
mysql -h 127.0.0.1 -P 4002
Expected Output
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.4.2 Greptime
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
PostgreSQL Protocol
kubectl port-forward svc/greptimedb-standalone 4003:4003 -n default > connections.out &
psql -h 127.0.0.1 -p 4003 -d public
Expected Output
psql (15.12, server 16.3-greptimedb-0.14.3)
WARNING: psql major version 15, server major version 16.
Some psql features might not work.
Type "help" for help.
public=>
HTTP API
kubectl port-forward svc/greptimedb-standalone 4000:4000 -n default > connections.out &
curl -X POST \
-d 'sql=show tables' \
http://localhost:4000/v1/sql
Expected Output
{"output":[{"records":{"schema":{"column_schemas":[{"name":"Tables","data_type":"String"}]},"rows":[["numbers"]],"total_rows":1}}],"execution_time_ms":5}[root
Uninstallation
To remove GreptimeDB standalone:
helm uninstall greptimedb-standalone -n default
kubectl delete pvc -l app.kubernetes.io/instance=greptimedb-standalone -n default