部署 GreptimeDB 集群
本指南将引导您在 Kubernetes 环境中部署 GreptimeDB 集群。在继续之前,请确保您的集群已安装 GreptimeDB Operator。我们将涵盖从设置 etcd 集群(可选)到配置选项和连接数据库的所有步骤。
前提条件
- Helm(使用与 Kubernetes API 版本匹配的版本)
- GreptimeDB Operator(假设本地主机已安装匹配版本的 GreptimeDB Operator)
创建 etcd 集群
要安装 etcd 集群,运行以下 helm install
命令。该命令还为安装创建了一个名为 etcd-cluster
的专用命名空间。
helm install etcd oci://greptime-registry.cn-hangzhou.cr.aliyuncs.com/charts/etcd \
--set image.registry="greptime-registry.cn-hangzhou.cr.aliyuncs.com" \
--set image.repository="bitnami/etcd" \
--set image.tag="3.5.11" \
--set replicaCount=3 \
--set auth.rbac.create=false \
--set auth.rbac.token.enabled=false \
--create-namespace \
-n etcd-cluster
验证 etcd 集群的安装
安装完成后,通过列出 etcd-cluster 命名空间中的 Pod 来验证 etcd 集群的状态:
kubectl get pods -n etcd-cluster
您应该看到类似以下的输出:
NAME READY STATUS RESTARTS AGE
etcd-0 1/1 Running 0 80s
etcd-1 1/1 Running 0 80s
etcd-2 1/1 Running 0 80s
部署最小化的 GreptimeDB 集群
接下来,部署一个最小化的 GreptimeDB 集群。此部署将依赖 etcd 集群进行协调。如果您已有一个正在运行的 etcd 集群,可以使用其端点。如果您按照上面的步骤操作,则使用 etcd.etcd-cluster.svc.cluster.local:2379
作为 etcd 端点。
运行此命令安装 GreptimeDB 集群:
helm install greptimedb oci://greptime-registry.cn-hangzhou.cr.aliyuncs.com/charts/greptimedb-cluster \
--set image.registry=greptime-registry.cn-hangzhou.cr.aliyuncs.com \
--set initializer.registry=greptime-registry.cn-hangzhou.cr.aliyuncs.com \
--set meta.etcdEndpoints=etcd.etcd-cluster.svc.cluster.local:2379 \
--create-namespace \
-n greptimedb-cluster
验证 GreptimeDB 集群的安装
检查 greptimedb-cluster
命名空间中的所有 Pod 是否正常运行:
kubectl get pods -n greptimedb-cluster
您应该看到类似以下的输出:
NAME READY STATUS RESTARTS AGE
greptimedb-datanode-0 1/1 Running 0 30s
greptimedb-datanode-2 1/1 Running 0 30s
greptimedb-datanode-1 1/1 Running 0 30s
greptimedb-frontend-7476dcf45f-tw7mx 1/1 Running 0 16s
greptimedb-meta-689cb867cd-cwsr5 1/1 Running 0 31s
高级配置选项
使用对象存储作为后端存储
要将数据存储在对象存储中(例如,存储到 Amazon S3),在 Helm 命令中添加以下配置:
helm install greptimedb oci://greptime-registry.cn-hangzhou.cr.aliyuncs.com/charts/greptimedb-cluster \
--set image.registry=greptime-registry.cn-hangzhou.cr.aliyuncs.com \
--set initializer.registry=greptime-registry.cn-hangzhou.cr.aliyuncs.com \
--set meta.etcdEndpoints=etcd.etcd-cluster.svc.cluster.local:2379 \
--set objectStorage.s3.bucket=<your-bucket> \
--set objectStorage.s3.region=<region-of-bucket> \
--set objectStorage.s3.root=<root-directory-of-data> \
--set objectStorage.credentials.accessKeyId=<your-access-key-id> \
--set objectStorage.credentials.secretAccessKey=<your-secret-access-key> \
greptime/greptimedb-cluster \
--create-namespace \
-n greptimedb-cluster
使用 RemoteWAL 并启用 Region 故障切换
如果您希望启用 RemoteWAL 和 region 故障切换,请遵循以下配置。您需要一个正在运行的 Kafka 集群,并可以使用其端点,例如 kafka.kafka-cluster.svc.cluster.local:9092
:
helm install greptimedb oci://greptime-registry.cn-hangzhou.cr.aliyuncs.com/charts/greptimedb-cluster \
--set image.registry=greptime-registry.cn-hangzhou.cr.aliyuncs.com \
--set initializer.registry=greptime-registry.cn-hangzhou.cr.aliyuncs.com \
--set meta.etcdEndpoints=etcd.etcd-cluster.svc.cluster.local:2379 \
--set meta.enableRegionFailover=true \
--set objectStorage.s3.bucket=<your-bucket> \
--set objectStorage.s3.region=<region-of-bucket> \
--set objectStorage.s3.root=<root-directory-of-data> \
--set objectStorage.credentials.accessKeyId=<your-access-key-id> \
--set objectStorage.credentials.secretAccessKey=<your-secret-access-key> \
--set remoteWal.enable=true \
--set remoteWal.kafka.brokerEndpoints[0]=kafka.kafka-cluster.svc.cluster.local:9092 \
greptime/greptimedb-cluster \
--create-namespace \
-n greptimedb-cluster
鉴权认证
要为 GreptimeDB 集群启用鉴权认证,您可以在安装期间通过 auth 设置配置用户凭据。以下是示例:
helm install greptimedb oci://greptime-registry.cn-hangzhou.cr.aliyuncs.com/charts/greptimedb-cluster \
--set image.registry=greptime-registry.cn-hangzhou.cr.aliyuncs.com \
--set initializer.registry=greptime-registry.cn-hangzhou.cr.aliyuncs.com \
--set meta.etcdEndpoints=etcd.etcd-cluster.svc.cluster.local:2379 \
--set auth.enabled=true \
--set auth.users[0].username=admin \
--set auth.users[0].password=admin \
greptime/greptimedb-cluster \
--create-namespace \
-n greptimedb-cluster