如何使用 Helm 设置 TDengine 集群

时间:2021-07-27 14:21:13

标签: kubernetes time-series kubernetes-helm

对于想要在 kubenetes 中安装 TDengine 集群的程序员。

TDengine 是 GNU AGPL v3.0 下的开源时间序列数据库,专为物联网 (IoT)、联网汽车、工业物联网以及 IT 基础设施和应用程序监控而设计和优化。除了速度快 10 倍的时序数据库,它还提供缓存、流计算、消息队列等功能,以降低开发和运维的复杂性和成本。

此问答适用于任何想在 kubenetes 中使用它的人。

1 个答案:

答案 0 :(得分:1)

安装 Helm

curl -fsSL -o get_helm.sh \
  https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod +x get_helm.sh
./get_helm.sh

Helm 将使用 kubectl 和第 1 章中设置的 kubeconfig。

安装TDengine Chart

下载 TDengine 图表。

wget https://github.com/taosdata/TDengine-Operator/raw/main/helm/tdengine-0.1.0.tgz

首先,检查您的 sotrage 类名称:

helm get storageclass

在 minikube 中,默认的存储类名称是 standard

然后一行部署TDengine:

helm install tdengine tdengine-0.1.0.tgz \
  --set storage.className=<your storage class name>

如果您使用 minikube,您可能需要较小的 TDengine 存储空间:

helm install tdengine tdengine-0.1.0.tgz \
  --set storage.className=standard \
  --set storage.dataSize=2Gi \
  --set storage.logSize=10Mi

如果成功,它将显示 TDengine 的最低使用率。

export POD_NAME=$(kubectl get pods --namespace default \
  -l "app.kubernetes.io/name=tdengine,app.kubernetes.io/instance=tdengine" \
  -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace default exec $POD_NAME -- taos -s "show dnodes; show mnodes"
kubectl --namespace default exec -it $POD_NAME -- taos

你可以自己试试:

post script

对于小型 sql 测试:

kubectl --namespace default exec $POD_NAME -- \
  taos -s "create database test;
    use test;
    create table t1 (ts timestamp, n int);
    insert into t1 values(now, 1)(now + 1s, 2);
    select * from t1;"

TDengine 支持 values.yaml 追加。

要查看完整的值列表,请使用 helm show values

helm show values tdengine-0.1.0.tgz

您可以将其保存到 values.yaml,并对其进行一些更改,例如副本计数、存储类名称等。然后输入:

helm install tdengine tdengine-0.1.0.tgz -f values.yaml

一些有用的值:

taoscfg:
  # Starts as cluster or not, must be 0 or 1.
  #   0: all pods will start as a seperate TDengine server
  #   1: pods will start as TDengine server cluster. [default]
  CLUSTER: "1"

  # number of days per DB file
  #TAOS_DAYS: "10"

  # number of days to keep DB file, default is 10 years.
  TAOS_KEEP: "3650"

放大

您可以在第 4 章中看到详细信息。

首先,我们应该在您的部署中获取 statefulset 名称:

export STS_NAME=$(kubectl get statefulset \
  -l "app.kubernetes.io/name=tdengine" \
  -o jsonpath="{.items[0].metadata.name}")

扩展非常简单,下一行将TDengine dnodes扩展到3个,不需要其他命令。

kubectl scale --replicas 3 statefulset/$STS_NAME

再次调用 show dnodes show mnodes 进行检查:

scale up

缩小

<块引用>

注意:按比例缩小并不完全按预期工作,请谨慎使用。

此外,缩小规模需要一些额外的步骤:

获取 dnode 端点并迭代地删除它:

kubectl --namespace default exec $POD_NAME -- \
  cat /var/lib/taos/dnode/dnodeEps.json \
  | jq '.dnodeInfos[1:] |map(.dnodeFqdn + ":" + (.dnodePort|tostring)) | .[]' -r
kubectl --namespace default exec $POD_NAME -- taos -s "show dnodes"
kubectl --namespace default exec $POD_NAME -- taos -s 'drop dnode "<you dnode in list>"'

放下一个 dnode 可能会导致几秒或几分钟。

drop dnode

卸载

helm uninstall tdengine

Helm 目前不会自动丢弃 pvc,您可以手动丢弃它。

相关问题