好消息!好消息!明天咱们有一个令人激动的好消息要发表!
尽管开局的文风看着有些“震惊党”,然而心愿大家不要介意。因为从明天开始,TDengine 终于正式推出了基于 K8s 上的部署计划。
这么久以来,咱们时常看到用户问什么时候能力看到 TDengine 在 K8s 上的部署计划——当初,这一天终于来了。
Kubernetes 是一个用于自动化部署、扩大和治理容器化应用程序的开源零碎。作为该畛域的事实标准,K8s 能够促成欠缺组件和工具的生态系统,以加重应用程序在私有云或公有云中部署和运维的累赘。
因而,有了 K8s 的助力,TDengine 的性能和轻便性以及弱小的资源利用能力都会锦上添花。
所以,咱们着实有必要“震惊”一下。
(图二来自于:K8s 官网文档)
早在 2019 年,Gartner 公司的报告就显示:以后世界的联网设施数在该年曾经超过 142 亿,预计 2021 年将达到 250 亿,如此宏大的设施数量会产生海量的数据。
另一方面,IDC(国内数据中心)的钻研报告称:到 2022 年,90%的新利用将具备微服务架构,这些架构可进步设计、调试、更新和利用第三方代码的能力,35%的生产利用将是云原生的。
因而,在云原生的场景解决海量的数据是将来的大势所趋。而容器化,作为基础设施和微服务的实践者,可能实现产品的疾速部署迭代,灵便扩容缩容,隔离利用。它的这些特色,正是云原生重要的组成部分。
现在,TDengine 终于也正式踏入了这一畛域。
家喻户晓,除了时序数据库之外,TDengine 还提供缓存、音讯队列、订阅、流式计算等性能,为物联网、工业互联网大数据的解决提供全栈的技术计划。所以,如果 TDengine 能失去容器化的加成,对于应用旧有大数据体系工具的用户来说,这样的替换无异于“鸟枪换炮”,应用体验和保护难度都会失去量变级别的优化。
为此,涛思数据提供了一组 Docker 镜像,并应用这组镜像别离实现了 TDengine 在 minikube 及 rancher rk2 环境下的部署和测试,初步实现了 Helm Chart 反对(Chart 名称:tdengine, 以后版本 0.1.0,Chart 地址:https://github.com/taosdata/TDengine-Operator/raw/main/helm/tdengine-0.1.0.tgz)。
Docker 构建流程及 Helm 源代码托管在 TDengine-Operator 仓库中;初步的中英文文档应用 GitHub Pages 公布在:https://taosdata.github.io/TDengine-Operator/。
中文文档见:https://taosdata.github.io/TDengine-Operator/zh/index.html;
英文文档见 https://github.com/taosdata/TDengine-Operator/en/index.html。
在部署过程中,因为数据库节点间存在主从关系之类的独立特色,并不是单纯截然不同的数据节点,即每个节点都是“有状态”的。因而咱们选用的是 statefulset(“有状态利用”的控制器)来部署集群。它能提供给 pod 以稳固的程序,稳固的网络,稳固的存储。这样能够保障数据库节点在复原后不论是数据状态还是网络状态都能够维持原样,从而爱护 TDengine 集群的稳定性和易维护性。
接下来,利用 Docker 的 entrypoint 个性,咱们每次在减少 pod 的正本数时,都会通过脚本主动连贯 firstEP(即是第一个创立的 pod),而后执行“create dnode + 新节点的 fqdn+ 端口”。因为 statefulset 个性使得 pod 的创立具备程序性,名字具备唯一性,所以咱们用这些个性来辨别不同 TDengine 节点的地址信息。
综上逻辑,因而在操作的时候,咱们只须要在控制器的 yaml 中指定正本(replica)数量,就能够间接失去一个相等数量的数据库集群,从而实现 TDengine 集群的疾速搭建。
示范如下:
与之相似,咱们只需依照文档操作,在线调整正本数就能够不便的动静扩容和缩容,非常便捷。但因为文章篇幅无限,不能赘述太多。所以,如果想理解更多其余 TDengine 在 K8s 上的部署形式和实现,欢送大家浏览:https://taosdata.github.io/TDengine-Operator/ 并本人实操一番。该文档对一些错误操作和部署时须要注意的细节也做了阐明。
附上本计划作者、涛思数据工程师霍琳贺想对大家说的话:
为了反对 TDengine 在 Kubernetes 上的部署,特编写此文档。此文档齐全开源,源码托管在 taosdata/TDengine-Operator,并欢送所有人对此文档进行批改,您能够间接提交 Pull Request,也能够增加 Issue,任何一种形式都将是咱们的荣幸。TDengine 欠缺离不开社区的共同努力,谢谢!
在本文档中,咱们将从部署一套 Kubernetes 环境开始,介绍如何启动 Kubernetes,并在 Kubernetes 上从头部署 TDengine 集群,简略介绍如何在 K8s 环境中进行 TDengine 集群的扩容和缩容,其中咱们未能残缺反对的中央也会有阐明,可能呈现问题的操作也作了简要的提醒。
如果在实际操作过程中遇到问题,您总是能够通过官网微信 tdengine 分割到咱们。
如您所见,TDengine 还在一直地优化本人的生态和性能,感激大家一路以来的反对与陪伴。