Kubernetes
GreptimeDB Operator
通过利用 Operator pattern,GreptimeDB Operator 可以有效管理 Kubernetes 上的 GreptimeDB 集群。这个 operator 可以抽象出维护高可用 GreptimeDB 集群的模式。
1. 创建测试版 Kubernetes 集群
用户可以通过 kind 创建测试版 Kubernetes 集群:
shell
1. kind create cluster
2. 通过 Helm 安装 GreptimeDB Operator
请先安装 Helm,然后通过下面的命令在默认命名空间安装 greptimedb-operator:
shell
1. helm repo add greptime https://greptimeteam.github.io/helm-charts/
shell
1. helm repo update
shell
1. helm install gtcloud greptime/greptimedb-operator -n default --devel
维护的 Helm 图表在 helm-charts 中。
3. 创建用户自己的 GreptimeDB 集群
为 GreptimeDB 创建 etcd cluster 集群
shell
1. helm install etcd greptime/greptimedb-etcd -n default --devel
创建 GreptimeDB 集群。该集群会使用上一步创建的 etcd 集群:
shell
1. helm install mydb greptime/greptimedb -n default --devel
如果你拥有自己的 etcd 集群,可以通过设置 etcdEndpoints 来使用自定义的 etcd 集群:
shell
1. helm install mycluster greptime/greptimedb --set etcdEndpoints=<your-etcd-cluster-endpoints> \
2. -n default --devel
安装之后,可以通过 kubectl port-forward 语句来转发 GreptimeDB 集群的 MySQL 协议端口:
shell
1. kubectl port-forward svc/mydb-frontend 4002:4002 > connections.out &
然后可以通过 MySQL 客户端访问集群
4. 清除 GreptimeDB 集群
可以通过以下命令卸载 operator 和集群:
shell
1. # Uninstall the cluster.
2. helm uninstall mydb
shell
1. # Uninstall etcd.
2. helm uninstall etcd -n default
shell
1. # Uninstall the operator.
2. helm uninstall gtcloud
shell
1. # Delete crds.
2. kubectl delete crds greptimedbclusters.greptime.io
gtctl
gtctl,g-t-control,是一个用于管理 GreptimeDB 集群的命令行工具。gtctl 是集成了 GreptimeDB 集群的多种操作的多合一 binary。
1. 创建测试版 Kubernetes 集群
通过 kind 来创建测试版 Kubernetes 集群:
shell
1. kind create cluster
2. 安装 gtctl
目前,gtctl 支持 x86_64 和 ARM64 架构的 Linux 和 Darwin 系统。
shell
1. curl -L https://raw.githubusercontent.com/greptimeteam/gtctl/develop/hack/install.sh | sh
3. 创建用户自己的 GreptimeDB 集群
shell
1. ./gtctl cluster create mydb -n default
安装完成后,gtctl 会创建以下内容:
etcdclusterfrontendinstances (default replicas is 1)datanodeinstances(default replicas is 3)metasrvservice(default replicas is 1)
可以通过 kubectl port-forward 命令来转发前端请求:
shell
1. kubectl port-forward svc/mydb-frontend 4002:4002 > connections.out &
4. 清除 GreptimeDB 集群
shell
1. ./gtctl cluster delete mydb --tear-down-etcd
