暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

熟悉TiDB运维管理工具之TiUP(二)

在上篇 熟悉TiDB运维管理工具之TiUP(一) (qq.com) 文章中我们整体介绍了TiUP运维管理工具,知道这个工具支持哪些命令以及哪些组件。在组件里面,最重要的莫过于集群管理组件TiUP Cluster,通过TiUP Cluster组件可以进行日常的运维工作,包括部署、启动、关闭、销毁、弹性扩缩容、升级、参数管理等。tiup cluster的语法格式为tiup cluster <command> [flags]flags部分暂时忽略,重点关注command部分。

一. TiUP Cluster支持哪些命令?

根据上图输出内容我们知道集群管理组件支持的命令有:

(1)check。部署前后的集群检查。

(2)deploy。根据指定拓扑部署集群。

(3)start。启动指定集群。

(4)stop。停止指定集群。

(5)restart。重启指定集群。

(6)scale-in。对集群进行缩容。

(7)scale-out。对集群进行扩容。

(8)destroy。销毁指定集群。

(9)clean。清理指定集群数据。

(10) upgrade。升级指定集群。

(11) display。显示指定集群信息。

(12) prune。删除集群中状态为Tomstone的实例(一般在缩容后需要执行)。

(13) list。列出所有集群。

(14) audit。查询集群审计日志。

(15) import。导入ansible部署的集群。

(16) edit-config。编辑指定集群配置。

(17) show-config。查看指定集群配置。

(18) reload。重载指定集群(一般在使用edit-config修改配置后执行)。

(19) patch。替换已有集群的某个服务。

(20) rename。修改指定集群名称。

(21) enable。开启指定集群开机自启动。

(22) disable。关闭指定集群开机自启动。

(23) replay。重试指定命令。

(24) template。输出拓扑模板(一般在集群部署前先使用此命令生成模板文件进行修改)。

(25) tls。在TiDB组件之间启用/禁用TLS

(26) meta。备份/恢复meta信息。

(27) rotatessh。在所有节点重新生成ssh秘钥。

(28) help。帮助。

(29) completion。对指定shell自动补齐脚本。

二. 使用TiUP Cluster部署集群完整步骤?

部署任何分布式数据库产品之前都有一些软硬件环境与系统配置检查的动作,关于此块内容,读者可具体参考官网文档TiDB 环境与系统配置检查 | PingCAP 文档中心。安装tiup本身也是一条命令的事情,在前文中也已经有所描述。假设环境配置、tiup安装、用户创建(具有sudo权限的tidb用户)这些事情都已经完成,我们就可以按以下步骤按部就班来部署集群了。

(一)安装tiup cluster

按照前面文章的描述,我们只需要执行tiup cluster命令即可。如果tiup cluster已安装好,命令返回tiup cluster的帮助信息;如果没有安装好,则会自动从镜像安装cluster组件。

tiup cluster

如果是离线安装,需要下载tidb-community-server-${version}-linux-amd64.tar.gz并安装tiup,在执行local_install.sh时脚本会自动执行tiup mirror set将镜像地址设置为tidb-community-server-${version}-linux-amd64

tar xzvf tidb-community-server-${version}-linux-amd64.tar.gz

sh tidb-community-server-${version}-linux-amd64/local_install.sh

source /home/tidb/.bash_profile

(二)初始化集群拓扑文件

安装完tiup cluster组件后,我们就可以准备安装数据库集群了。由于TiDB数据库包含PDTiDBTiKVTiFlash等不同的组件,这些组件分别要安装在哪些机器上是需要事先规划好的。待规划好集群拓扑之后,我们需要做的就是准备一个集群拓扑文件。

集群拓扑文件是一个yaml后缀的文件,可以从已有集群使用tiup cluster show-config保存,也可以从模板文件编辑而来。如果没有现成的yaml文件,我们可以使用tiup cluster template命令生成一个模板文件。

//生成拓扑模板文件

tiup cluster  template > topology.yaml

通过上图可以大致了解,模板文件主要定义了每个组件要安装在哪些节点上(图中省略了所有组件的配置项,意味着都使用默认配置)。有了模板文件之后,我们可以根据所要部署的实际拓扑信息来修改这个配置文件并保存,比如名称为topology.yaml

(三)检查集群环境配置及自动修复

有了拓扑文件,原则上我们就可以进行部署了,不过在部署前我们可以利用tiup cluster提供的check命令来检查所要安装节点的集群环境是否存在隐患,如果存在隐患,可以通过—apply参数来自动修复部分问题(可能有些需要手工操作修复)。

//检查集群环境

tiup cluster  check ./topology.yaml

//自动修复环境问题项

tiup cluster  check ./topology.yaml --apply

上图是使用tiup cluster check —apply执行后的打印,输出信息显示有一些配置问题被自动修复,但仍然有一些无法自动修复需要手工执行。

(四)部署集群

上述检查修复完成后,便可以开始部署集群了,使用tiup cluster deploy {cluster-name} <version> topology.yaml命令部署集群。

//lycluster为集群名称,v7.5.0为集群版本

tiup cluster  deploy lycluster v7.5.0 ./topology.yaml

输出内容包含以下步骤:

+ Generate SSH  keys

+ Download TiDB  components

+ Initialize  target host environments

+ Deploy TiDB  instance

+ Copy  certificate to remote host

+ Init instance  configs

+ Init monitor  configs

Enabling  component pd

Enabling  component tikv

Enabling  component tidb

Enabling  component Prometheus

Enabling  component Grafana

Enabling  component alertmanager

Enabling  component node_exporter

Enabling  component blackbox_exporter

当打印 Cluster `lycluster` deployed successfully, you can start it with command: `tiup cluster start lycluster --init`时,代表集群部署成功,提示可以使用相关命令启动数据库。

(五)启动集群

根据上述部署成功的打印信息,使用tiup cluster start {cluster-name} –init启动集群。注意:--init可以省略,如果省略的话表示初始化的root用户是没有密码的,如果有—init则启动后会自动生成一个root数据库用户的密码,需要单独保存。

tiup cluster  start lycluster –init

从启动输出中可以看到组件启动的顺序:

Starting  component pd

Starting  component tikv

Starting  component tidb

Starting  component Prometheus

Starting  component Grafana

Starting  component alertmanager

Starting  component node_exporter

Starting  component blackbox_exporter

上述截图表示启动成功,并且生成了一个复杂的root密码,可以直接使用此密码,也可以进入到mysql客户端使用set password立刻修改密码。上述也显示了组件的启动顺序,PD是整个组件的大脑所以它最先启动,TiKV依赖PD启动,其次是TiDB启动,如果有TiFlash的话,TiFlash将在TiDB之后启动。

(六)查看集群列表及集群详情

到目前为止,集群部署完成并成功启动,可以测试使用mysql客户端连接数据库集群。在后续的使用过程中,我们时不时要查看集群的健康状态,包括Dashboard/GrafanaURL地址、组件的目录及端口等。Tiup提供tiup cluster display {cluster-name}来查看集群详情,同时也提供tiup cluster list可以列出当前tiup管理了哪几套集群。

//列出当前tiup管理了哪几套集群

tiup cluster  list

//查看集群详情

tiup cluster  display

截图显示,tiup cluster list显示当前管理的集群名称、用户、版本、tiup管理路径以及私钥;tiup cluster display显示集群名称、版本、用户、DashboardGrafana URL,以及每个组件的端口、所在节点、状态、数据目录及部署路径等。

至此,我们使用tiup从头到尾部署一套集群已经完成,后期如果集群不想使用可以使用tiup cluster destroy销毁集群,也可以使用tiup cluster clean清除集群的数据。如果集群规模需要扩大或缩小,可以使用tiup cluster scale-out(扩容)tiup cluster scale-in(缩容)。如果需要修改集群级别配置,可以使用tiup cluster edit-config修改参数并使用tiup cluster reload重载集群。这些内容我们将在后续文章中继续介绍。

文章转载自数据源的技术后花园,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论