0
1
1
0
博客/.../

osyun平台新建TiDB集群

 18515065291  发表于  2025-10-31

话说,osyun平台从开发TiDB到实现部署集群自动化功能,历经了2个月左右,期间还是有一些辛酸泪的~

今天我们来看看新建TiDB集群的osyun平台的实现,有神马不容易~

页面 1 (31).png

先看新建TiDB集群的流程,工单方式,分为4步:

  • 用户申请工单
  • 审批流程
  • 自动化确认流程
  • 自动化执行流程

实现的核心点呢,就是利用tiup工具去实现自动化部署,详细流程如下:

image.png

页面 1 (35).png

TiDB数据库最让人感觉暖心的就是tiup工具了,无需疑惑,无需纠结,它就是运维TiDB集群的核心!

那么做数据库管理平台,就是围绕tiup去做了,包括部署集群,扩缩容节点、启停节点、销毁集群等等

页面 1 (36).png

知道了选择什么工具,剩下就是元信息设计了,TiDB有集群概念,多角色、多端口的特点,那么设计上就是如下几点核心了:

  • 集群
  • 实例
  • 域名
  • VIP
  • 套餐
  • 存储
  • 版本
  • tiup配置

当前osyun平台的tidb的元信息表有93张,都是围绕这些方向去建立的

页面 1 (37).png

回看TiDB从2.x版本到当前的8.x版本,添加了很多很多参数,例如:numa、资源管控的参数等等,产品化呢需要支持客户去指定,又要有一定的默认规则,这个是有点小难度的。

在之前公司上班时候的做法,是将这些默认规则写入到脚本里,不会放到平台界面处去实现,这样简单高效。

但是,做产品不能这样,必须灵活支持多种定制,需要支持用户的指定参数,又要支持一定的默认,且都要在平台上能选择。

所以,在部署TiDB集群的设计上,我们也参考了TEM平台,毕竟站在巨人的肩膀,我们也能看的远一些,此处感谢TEM的开发小伙伴~当然设计与实现思路是不同的

页面 1 (39).png

跟MySQL截然不同的是,TiDB有多种角色:TiDB、PD、TiKV、TiFlash、Prometheus、Grafana,到后来又添加的TiProxy,这种设计是有好有坏的。

好处呢,是角色分的很清晰,每种角色做自己的事情。

其实不算坏处,只是需要适应这种特殊性:

  • 设计上:每种角色有自己独立的参数,例如端口、标签等,都需要在设计上做考量
  • 让元信息的表数量膨胀了几倍
  • 让平台界面也膨胀了些
  • 让自动化脚本的参数也膨胀了些

总之,我们需要根据TiDB的多角色特点做适配,才能让集群的管理更丝滑

页面 1 (41).png

TiDB是多版本的,且发版比较快,好在tiup都能支持,当然4.x版本之前是不行的了!

当前osyun平台部署的都是8.5.1版本,新版本发布后,只要让tiup支持,再在平台上维护下版本信息,就可以部署新的版本了

页面 1 (42).png

osyun平台有个特点,就是工单化,申请TiDB集群,需要先申请新建集群的工单,选择最少的信息,提交后,审批通过,DBA在自动化确认界面,去确认详细的集群参数。

这样设计的好处是:申请集群很轻松,也无需关心端口等细节,因为申请的多数是开发同学,做简单的申请,他们应该会很开心。

懂得各种参数的是DBA同学,在自动化确认界面,详细的参数需要确认,确认好后就可以进行自动化执行了。

这样的设计让专业的人做专业的事情,申请简单~

申请界面如下:

image.png

输入集群基本信息

image.png

库配置

image.png

TiDB资源

image.png

TiDB机房

image.png

PD资源

image.png

PD机房

image.png

TiKV资源

image.png

TiKV机房

image.png

支持TiFlash可选部署,选择是,则进行部署

image.png

Tiflash机房

image.png

账号

image.png

人员

image.png

确认后提交工单即可,很简单有没有~

想看部署视频案例的,可以查看公众号文章:https://mp.weixin.qq.com/s/PMYRKFf11k8oqvXaOg70Uw

可以关注公众号:

image.png

如果有咨询,可以添加微信:

image.png

0
1
1
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论