Skip to content

Commit 49fc708

Browse files
authored
chore: improve enterprise greptimedb install (#2508)
Signed-off-by: liyang <daviderli614@gmail.com>
1 parent 2fc4672 commit 49fc708

18 files changed

Lines changed: 1327 additions & 55 deletions

File tree

docs/enterprise/deployments-administration/deploy-on-kubernetes/installation.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ Refer to [Deploy Kafka Cluster](/user-guide/deployments-administration/deploy-on
6565

6666
Refer to [Deploy MinIO Cluster](/user-guide/deployments-administration/deploy-on-kubernetes/deploy-minio.md) for detailed installation steps.
6767

68+
## Install GreptimeDB Infrastructure Test
69+
70+
Refer to [Deploy GreptimeDB Infrastructure test](/user-guide/deployments-administration/deploy-on-kubernetes/deploy-greptimedb-infra-test.md) for detailed installation steps. Tell the test results to Greptimeteam.
71+
6872
## Install and Start GreptimeDB
6973

7074
### Obtain GreptimeDB Enterprise Edition Image
@@ -100,7 +104,11 @@ When Greptime staff first deliver the GreptimeDB Enterprise Edition to you, they
100104

101105
### Configuration Management
102106

103-
Before installation, you need to create a file to configure the GreptimeDB cluster. Adjust it according to your Kubernetes environment. For more configurations, please refer to the [documentation](/user-guide/deployments-administration/deploy-on-kubernetes/common-helm-chart-configurations.md). Below is a reference configuration for `greptimedb-cluster-values.yaml`:
107+
The following are tools and documentation that can help with configuration:
108+
- tool: https://greptimedb-enterprise-wizard.mrsatangel.workers.dev/
109+
- documentation: [common-helm-chart-configurations](/user-guide/deployments-administration/deploy-on-kubernetes/common-helm-chart-configurations.md)
110+
111+
Before installation, you need to create a file to configure the GreptimeDB cluster. Adjust it according to your Kubernetes environment. Below is a reference configuration for `greptimedb-cluster-values.yaml`:
104112

105113
```yaml
106114
customImageRegistry:
@@ -451,7 +459,7 @@ tolerations: []
451459
affinity: {}
452460
```
453461
454-
### Start Enterprise Dashboard
462+
### Install
455463
456464
```bash
457465
helm upgrade --install greptimedb-enterprise-dashboard \
@@ -484,19 +492,10 @@ greptimedb-enterprise-dashboard ClusterIP 10.96.80.175 <none> 19095/TCP
484492
```
485493
</details>
486494

487-
### Log in to Enterprise Dashboard
495+
### Login
488496

489497
Access port 19095 of the dashboard service to log in.
490498

491499
![Enterprise Dashboard Login](/enterprise-dashboard-login.png)
492500

493-
Log in using the superuser account and password from the database deployment. You will see:
494-
495-
![Enterprise Dashboard Page](/enterprise-dashboard-page.png)
496-
497-
1. Query: Use SQL to query data
498-
2. Logs Query: Use the UI to query log tables
499-
3. Cluster Overview: Current cluster statistics
500-
4. Metrics Monitoring: Database cluster self-monitoring metrics
501-
5. Instance Logs: Database instance logs
502-
6. User Management: Add, delete, and modify user accounts
501+
Log in using the `auth.users[0].username` and `auth.users[0].password` from the database deployment configuration. For more console operation reference [documentation](/enterprise/console-ui.md).

docs/user-guide/deployments-administration/deploy-on-kubernetes/_pre_kind_helm.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ helm search repo greptime
7575
NAME CHART VERSION APP VERSION DESCRIPTION
7676
greptime/greptimedb-cluster 0.8.3 1.0.1 A Helm chart for deploying GreptimeDB cluster i...
7777
greptime/greptimedb-enterprise-dashboard 0.1.0 0.1.0 The Helm chart for deploying GreptimeDB Enterpr...
78+
greptime/greptimedb-infra-test 0.1.0 0.1.0 The Helm chart for deploying GreptimeDB infra t...
7879
greptime/greptimedb-operator 0.5.9 0.5.5 The greptimedb-operator Helm chart for Kubernetes.
7980
greptime/greptimedb-remote-compaction 0.1.1 0.1.0 Remote compaction components (scheduler, compac...
8081
greptime/greptimedb-standalone 0.4.2 1.0.1 A Helm chart for deploying standalone greptimedb
Lines changed: 317 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,317 @@
1+
---
2+
keywords: [Kubernetes deployment, GreptimeDB infrastructure, testing, tools]
3+
description: Guide for deploying GreptimeDB infrastructure testing tools on Kubernetes.
4+
---
5+
6+
# Deploy GreptimeDB Infrastructure Tests
7+
8+
In this guide, you will learn how to deploy GreptimeDB infrastructure testing tools on Kubernetes.
9+
10+
import PreKindHelm from './_pre_kind_helm.mdx';
11+
12+
<PreKindHelm />
13+
14+
## Configuration
15+
16+
Create a custom configuration file `infra-test-values.yaml`:
17+
18+
```yaml
19+
image:
20+
# -- The image registry
21+
registry: docker.io
22+
# -- The image repository
23+
repository: greptime/greptime-tool
24+
# -- The image tag
25+
tag: "20260521-c19a702"
26+
# -- The image pull secrets
27+
pullSecrets: []
28+
29+
# -- Configure to the tests
30+
case:
31+
disk:
32+
enabled: true
33+
storageClass: null
34+
size: 20Gi
35+
36+
cpu:
37+
enabled: true
38+
39+
rds:
40+
enabled: true
41+
host: "your-rds-host"
42+
port: 3306
43+
database: "test"
44+
username: "your-rds-username"
45+
password: "your-rds-password"
46+
47+
s3:
48+
enabled: true
49+
bucket: "bucket-name"
50+
region: "s3-region"
51+
accessKeyID: "your-access-key-id"
52+
secretAccessKey: "your-secret-access-key"
53+
54+
kafka:
55+
enabled: true
56+
endpoint: "your-kafka-endpoint"
57+
```
58+
59+
## Installation
60+
61+
Install with custom configuration:
62+
63+
```bash
64+
helm upgrade --install greptimedb-infra-test greptime/greptimedb-infra-test \
65+
--values infra-test-values.yaml \
66+
-n default
67+
```
68+
69+
## View Test Results
70+
71+
The testing tool runs as a Kubernetes job, with results output in the pod logs:
72+
73+
```bash
74+
kubectl get pod -n default
75+
```
76+
77+
<details>
78+
<summary>Expected output</summary>
79+
```bash
80+
NAMESPACE NAME READY STATUS RESTARTS AGE
81+
default greptimedb-infra-test-n7z74 0/1 Completed 0 10m
82+
```
83+
</details>
84+
85+
```bash
86+
kubectl logs greptimedb-infra-test-n7z74 -n default
87+
```
88+
89+
<details>
90+
<summary>Expected output</summary>
91+
```bash
92+
================== Starting testing... ==================
93+
94+
================== Disk tests ==================
95+
96+
================== Running full I/O test ==================
97+
seq-read: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
98+
seq-write: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
99+
rand-iops: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=256
100+
...
101+
fio-3.28
102+
Starting 6 processes
103+
seq-read: Laying out IO file (1 file / 1024MiB)
104+
105+
seq-read: (groupid=0, jobs=6): err= 0: pid=14: Thu May 21 19:01:15 2026
106+
read: IOPS=48.2k, BW=188MiB/s (198MB/s)(11.1GiB/60436msec)
107+
slat (nsec): min=625, max=615290k, avg=53392.68, stdev=2634423.19
108+
clat (nsec): min=875, max=636646k, avg=7912987.95, stdev=30341131.85
109+
lat (usec): min=52, max=636649, avg=7966.49, stdev=30463.52
110+
clat percentiles (usec):
111+
| 1.00th=[ 223], 5.00th=[ 375], 10.00th=[ 562], 20.00th=[ 979],
112+
| 30.00th=[ 1303], 40.00th=[ 1680], 50.00th=[ 2311], 60.00th=[ 3490],
113+
| 70.00th=[ 4752], 80.00th=[ 6128], 90.00th=[ 13042], 95.00th=[ 23725],
114+
| 99.00th=[103285], 99.50th=[270533], 99.90th=[421528], 99.95th=[438305],
115+
| 99.99th=[488637]
116+
bw ( KiB/s): min= 9969, max=450583, per=99.87%, avg=192706.79, stdev=24021.38, samples=596
117+
iops : min= 2490, max=112644, avg=48175.32, stdev=6005.33, samples=596
118+
write: IOPS=34.0k, BW=133MiB/s (139MB/s)(8021MiB/60436msec); 0 zone resets
119+
slat (nsec): min=708, max=615509k, avg=77566.35, stdev=3387406.46
120+
clat (usec): min=241, max=640859, avg=22321.94, stdev=54921.92
121+
lat (usec): min=281, max=640862, avg=22399.63, stdev=55019.71
122+
clat percentiles (msec):
123+
| 1.00th=[ 3], 5.00th=[ 5], 10.00th=[ 7], 20.00th=[ 8],
124+
| 30.00th=[ 9], 40.00th=[ 10], 50.00th=[ 11], 60.00th=[ 12],
125+
| 70.00th=[ 14], 80.00th=[ 16], 90.00th=[ 26], 95.00th=[ 54],
126+
| 99.00th=[ 359], 99.50th=[ 414], 99.90th=[ 485], 99.95th=[ 502],
127+
| 99.99th=[ 634]
128+
bw ( KiB/s): min=15032, max=284142, per=99.98%, avg=135879.94, stdev=12430.31, samples=596
129+
iops : min= 3757, max=71033, avg=33968.77, stdev=3107.56, samples=596
130+
lat (nsec) : 1000=0.01%
131+
lat (usec) : 20=0.01%, 50=0.01%, 100=0.01%, 250=0.95%, 500=3.99%
132+
lat (usec) : 750=3.41%, 1000=3.77%
133+
lat (msec) : 2=15.07%, 4=11.77%, 10=31.21%, 20=20.84%, 50=5.71%
134+
lat (msec) : 100=1.14%, 250=0.99%, 500=1.12%, 750=0.02%
135+
cpu : usr=1.88%, sys=8.37%, ctx=786665, majf=0, minf=263
136+
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
137+
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
138+
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.1%
139+
issued rwts: total=2915521,2053386,0,0 short=0,0,0,0 dropped=0,0,0,0
140+
latency : target=0, window=0, percentile=100.00%, depth=256
141+
142+
Run status group 0 (all jobs):
143+
READ: bw=188MiB/s (198MB/s), 188MiB/s-188MiB/s (198MB/s-198MB/s), io=11.1GiB (11.9GB), run=60436-60436msec
144+
WRITE: bw=133MiB/s (139MB/s), 133MiB/s-133MiB/s (139MB/s-139MB/s), io=8021MiB (8411MB), run=60436-60436msec
145+
146+
Disk stats (read/write):
147+
vda: ios=2915375/2054793, merge=4/1130, ticks=8259465/6477837, in_queue=14772291, util=82.28%
148+
149+
================== Running mixed read/write test ==================
150+
fiotest: (g=0): rw=rw, bs=(R) 64.0KiB-64.0KiB, (W) 64.0KiB-64.0KiB, (T) 64.0KiB-64.0KiB, ioengine=libaio, iodepth=16
151+
...
152+
fio-3.28
153+
Starting 8 processes
154+
fiotest: Laying out IO file (1 file / 1024MiB)
155+
156+
fiotest: (groupid=0, jobs=8): err= 0: pid=22: Thu May 21 19:02:19 2026
157+
read: IOPS=42.5k, BW=2657MiB/s (2786MB/s)(4092MiB/1540msec)
158+
slat (nsec): min=1541, max=3755.0k, avg=6912.45, stdev=28881.60
159+
clat (usec): min=30, max=52156, avg=1045.12, stdev=2441.43
160+
lat (usec): min=45, max=52191, avg=1052.13, stdev=2441.68
161+
clat percentiles (usec):
162+
| 1.00th=[ 118], 5.00th=[ 188], 10.00th=[ 265], 20.00th=[ 392],
163+
| 30.00th=[ 506], 40.00th=[ 635], 50.00th=[ 783], 60.00th=[ 922],
164+
| 70.00th=[ 1074], 80.00th=[ 1254], 90.00th=[ 1680], 95.00th=[ 2311],
165+
| 99.00th=[ 3949], 99.50th=[ 4948], 99.90th=[47973], 99.95th=[49546],
166+
| 99.99th=[50070]
167+
bw ( MiB/s): min= 2578, max= 2871, per=100.00%, avg=2697.33, stdev=16.88, samples=24
168+
iops : min=41246, max=45946, avg=43154.67, stdev=270.28, samples=24
169+
write: IOPS=42.6k, BW=2662MiB/s (2792MB/s)(4100MiB/1540msec); 0 zone resets
170+
slat (usec): min=2, max=3271, avg= 8.33, stdev=25.30
171+
clat (usec): min=95, max=52303, avg=1920.68, stdev=2554.97
172+
lat (usec): min=138, max=52312, avg=1929.12, stdev=2555.52
173+
clat percentiles (usec):
174+
| 1.00th=[ 310], 5.00th=[ 498], 10.00th=[ 693], 20.00th=[ 988],
175+
| 30.00th=[ 1254], 40.00th=[ 1516], 50.00th=[ 1762], 60.00th=[ 1975],
176+
| 70.00th=[ 2212], 80.00th=[ 2474], 90.00th=[ 2835], 95.00th=[ 3294],
177+
| 99.00th=[ 4817], 99.50th=[ 5800], 99.90th=[50594], 99.95th=[50594],
178+
| 99.99th=[50594]
179+
bw ( MiB/s): min= 2560, max= 2861, per=100.00%, avg=2701.42, stdev=15.97, samples=24
180+
iops : min=40960, max=45780, avg=43219.67, stdev=255.59, samples=24
181+
lat (usec) : 50=0.01%, 100=0.26%, 250=4.39%, 500=12.56%, 750=12.72%
182+
lat (usec) : 1000=12.92%
183+
lat (msec) : 2=34.10%, 4=21.45%, 10=1.28%, 20=0.01%, 50=0.23%
184+
lat (msec) : 100=0.06%
185+
cpu : usr=2.91%, sys=9.45%, ctx=35300, majf=0, minf=295
186+
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=99.9%, 32=0.0%, >=64=0.0%
187+
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
188+
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%
189+
issued rwts: total=65475,65597,0,0 short=0,0,0,0 dropped=0,0,0,0
190+
latency : target=0, window=0, percentile=100.00%, depth=16
191+
192+
Run status group 0 (all jobs):
193+
READ: bw=2657MiB/s (2786MB/s), 2657MiB/s-2657MiB/s (2786MB/s-2786MB/s), io=4092MiB (4291MB), run=1540-1540msec
194+
WRITE: bw=2662MiB/s (2792MB/s), 2662MiB/s-2662MiB/s (2792MB/s-2792MB/s), io=4100MiB (4299MB), run=1540-1540msec
195+
196+
Disk stats (read/write):
197+
vda: ios=58387/58501, merge=35/82, ticks=56442/57649, in_queue=114196, util=49.76%
198+
199+
================== CPU tests ==================
200+
Architecture: aarch64
201+
CPU op-mode(s): 64-bit
202+
Byte Order: Little Endian
203+
CPU(s): 6
204+
On-line CPU(s) list: 0-5
205+
Vendor ID: Apple
206+
Model: 0
207+
Thread(s) per core: 1
208+
Core(s) per cluster: 6
209+
Socket(s): -
210+
Cluster(s): 1
211+
Stepping: 0x0
212+
BogoMIPS: 48.00
213+
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp flagm2 frint
214+
Vulnerability Gather data sampling: Not affected
215+
Vulnerability Itlb multihit: Not affected
216+
Vulnerability L1tf: Not affected
217+
Vulnerability Mds: Not affected
218+
Vulnerability Meltdown: Not affected
219+
Vulnerability Mmio stale data: Not affected
220+
Vulnerability Reg file data sampling: Not affected
221+
Vulnerability Retbleed: Not affected
222+
Vulnerability Spec rstack overflow: Not affected
223+
Vulnerability Spec store bypass: Vulnerable
224+
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
225+
Vulnerability Spectre v2: Not affected
226+
Vulnerability Srbds: Not affected
227+
Vulnerability Tsx async abort: Not affected
228+
229+
================== PostgreSQL Tests ==================
230+
231+
================== Running connection test ==================
232+
✓ Connection successful
233+
PostgreSQL version: 17.5
234+
235+
================== Running latency test ==================
236+
Query 1: 62.14ms
237+
Query 2: 32.75ms
238+
Query 3: 26.37ms
239+
Query 4: 27.06ms
240+
Query 5: 27.67ms
241+
242+
================== Running write performance test ==================
243+
DROP TABLE
244+
CREATE TABLE
245+
Testing single row INSERT performance (1000 rows)...
246+
Inserted 1000 rows in 50.45ms
247+
Average: .05ms per insert
248+
Testing bulk INSERT performance (10000 rows)...
249+
k Bulk inserted 10000 rows in 292.07ms
250+
Throughput: 34238 rows/sec
251+
252+
================== Running read performance test ==================
253+
Total rows: 10001
254+
Count query took: 29.80ms
255+
SELECT with condition (id < 1000): 30.32ms
256+
Aggregate query (GROUP BY): 32.23ms
257+
258+
================== Running concurrent connection test ==================
259+
Spawned 20 concurrent connections (all completed)
260+
261+
================== Running database info query ==================
262+
Database size: 8531091 bytes
263+
Active connections: 6
264+
PostgreSQL uptime: 2026-05-21 17:37:54.672924+00
265+
266+
================== Running cleanup ==================
267+
DROP TABLE
268+
269+
================== PostgreSQL tests completed ==================
270+
271+
================== Generating 10MB test file... ==================
272+
1+0 records in
273+
1+0 records out
274+
10485760 bytes (10 MB, 10 MiB) copied, 0.0255081 s, 411 MB/s
275+
276+
================== Running S3 transfer test... ==================
277+
278+
================== Upload s3 testfile... ==================
279+
100.00% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.49 MB / 10.49 MB (491.69 kB/s) 22s (1/1)
280+
Script started on 2026-05-21 19:02:22+00:00 [<not executed on terminal>]
281+
100.00% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.49 MB / 10.49 MB (491.69 kB/s) 22s (1/1)
282+
283+
Script done on 2026-05-21 19:02:44+00:00 [COMMAND_EXIT_CODE="0"]
284+
285+
================== Upload time: 22 seconds ==================
286+
287+
================== Download s3 testfile... ==================
288+
100.00% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.49 MB / 10.49 MB (7.48 MB/s) 1.6s (1/1)
289+
Script started on 2026-05-21 19:02:44+00:00 [<not executed on terminal>]
290+
100.00% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.49 MB / 10.49 MB (7.48 MB/s) 1.6s (1/1)
291+
292+
Script done on 2026-05-21 19:02:45+00:00 [COMMAND_EXIT_CODE="0"]
293+
294+
================== Download time: 1 seconds ==================
295+
296+
================== Verifying file integrity... ==================
297+
298+
================== S3 test passed ==================
299+
File size: 10485760 bytes
300+
MD5 checksum: 29022c552b0f81a9c89f6ff676a5c102
301+
302+
================== Kafka test ==================
303+
304+
================== Creating Kafka Topic ==================
305+
306+
================== Starting Consumer ==================
307+
308+
================== Producing Messages ==================
309+
Produce time: 1 seconds
310+
311+
================== Consumed Messages ==================
312+
Successfully consumed 23 messages
313+
314+
================== All tests completed! ==================
315+
```
316+
</details>
317+

docs/user-guide/deployments-administration/deploy-on-kubernetes/overview.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ including installation and upgrades.
3838

3939
After familiarizing yourself with [the architecture and components of GreptimeDB](/user-guide/concepts/architecture.md), you can explore advanced deployment scenarios:
4040

41-
- [Deploy MinIO cluster](deploy-minio.md):Learn how to deploy, configure, and monitor a MinIO cluster.
42-
- [Deploy Kafka cluster](deploy-kafka.md):Learn how to deploy, configure, and monitor a Kafka cluster.
41+
- [Deploy GreptimeDB Infrastructure test](deploy-greptimedb-infra-test.md): Prerequisite infrastructure testing for installing GreptimeDB.
42+
- [Deploy MinIO cluster](deploy-minio.md): Learn how to deploy, configure, and monitor a MinIO cluster.
43+
- [Deploy Kafka cluster](deploy-kafka.md): Learn how to deploy, configure, and monitor a Kafka cluster.
4344
- [Deploy GreptimeDB Cluster with Remote WAL](configure-remote-wal.md): Configure Kafka as a remote write-ahead log (WAL) for your GreptimeDB cluster to persistently record every data modification and ensure no loss of memory-cached data.
4445
- [Use MySQL/PostgreSQL as Metadata Store](/user-guide/deployments-administration/deploy-on-kubernetes/common-helm-chart-configurations.md#configuring-metasrv-backend-storage): Integrate MySQL/PostgreSQL databases to provide robust metadata storage capabilities for enhanced reliability and performance.
4546
- [Deploy Multi-Frontend GreptimeDB Cluster](configure-frontend-groups.md): Set up a GreptimeDB cluster on Kubernetes with a frontend group consisting of multiple frontend instances for improved load distribution and availability.

0 commit comments

Comments
 (0)