对于想要在 kubenetes 中安装 TDengine 集群的程序员。
TDengine 是 GNU AGPL v3.0 下的开源时间序列数据库,专为物联网 (IoT)、联网汽车、工业物联网以及 IT 基础设施和应用程序监控而设计和优化。除了速度快 10 倍的时序数据库,它还提供缓存、流计算、消息队列等功能,以降低开发和运维的复杂性和成本。
此问答适用于任何想在 kubenetes 中使用它的人。
答案 0 :(得分:1)
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 图表。
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
你可以自己试试:
对于小型 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
进行检查:
注意:按比例缩小并不完全按预期工作,请谨慎使用。
此外,缩小规模需要一些额外的步骤:
获取 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 可能会导致几秒或几分钟。
helm uninstall tdengine
Helm 目前不会自动丢弃 pvc,您可以手动丢弃它。