熟悉 TiDB 运维管理工具之 TiUP(二)
作者: 数据源的 TiDB 学习之路原文来源:https://tidb.net/blog/b74e22d0
在上篇 专栏 - 熟悉 TiDB 运维管理工具之 TiUP(一) | TiDB 社区 文章中我们整体介绍了 TiUP 运维管理工具,知道这个工具支持哪些命令以及哪些组件。在组件里面,最重要的莫过于集群管理组件 TiUP Cluster,通过 TiUP Cluster 组件可以进行日常的运维工作,包括部署、启动、关闭、销毁、弹性扩缩容、升级、参数管理等。tiup cluster 的语法格式为 tiup cluster <command> [flags],flags 部分暂时忽略,重点关注 command 部分。
一. TiUP Cluster 支持哪些命令?
根据上图输出内容我们知道集群管理组件支持的命令有:
check。部署前后的集群检查。
deploy。根据指定拓扑部署集群。
start。启动指定集群。
stop。停止指定集群。
restart。重启指定集群。
scale-in。对集群进行缩容。
scale-out。对集群进行扩容。
destroy。销毁指定集群。
clean。清理指定集群数据。
upgrade。升级指定集群。
display。显示指定集群信息。
prune。删除集群中状态为 Tomstone 的实例(一般在缩容后需要执行)。
list。列出所有集群。
audit。查询集群审计日志。
import。导入 ansible 部署的集群。
edit-config。编辑指定集群配置。
show-config。查看指定集群配置。
reload。重载指定集群(一般在使用 edit-config 修改配置后执行)。
patch。替换已有集群的某个服务。
rename。修改指定集群名称。
enable。开启指定集群开机自启动。
disable。关闭指定集群开机自启动。
replay。重试指定命令。
template。输出拓扑模板(一般在集群部署前先使用此命令生成模板文件进行修改)。
tls。在 TiDB 组件之间启用 / 禁用 TLS。
meta。备份 / 恢复 meta 信息。
rotatessh。在所有节点重新生成 ssh 秘钥。
help。帮助。
completion。对指定 shell 自动补齐脚本。
二. 使用 TiUP Cluster 部署集群完整步骤?
部署任何分布式数据库产品之前都有一些软硬件环境与系统配置检查的动作,关于此块内容,读者可具体参考官网文档 TiDB 环境与系统配置检查 | PingCAP 文档中心。安装 tiup 本身也是一条命令的事情,在前文中也已经有所描述。假设环境配置、tiup 安装、用户创建(具有 sudo 权限的 tidb 用户)这些事情都已经完成,我们就可以按以下步骤按部就班来部署集群了。
(一)安装 tiup cluster
按照前面文章的描述,我们只需要执行 tiup cluster 命令即可。如果 tiup cluster 已安装好,命令返回 tiup cluster 的帮助信息;如果没有安装好,则会自动从镜像安装 cluster 组件。
如果是离线安装,需要下载 tidb-community-server-${version}-linux-amd64.tar.gz 并安装 tiup,在执行 local_install.sh 时脚本会自动执行 tiup mirror set 将镜像地址设置为 tidb-community-server-${version}-linux-amd64。
(二)初始化集群拓扑文件
安装完 tiup cluster 组件后,我们就可以准备安装数据库集群了。由于 TiDB 数据库包含 PD、TiDB、TiKV、TiFlash 等不同的组件,这些组件分别要安装在哪些机器上是需要事先规划好的。待规划好集群拓扑之后,我们需要做的就是准备一个集群拓扑文件。
集群拓扑文件是一个 yaml 后缀的文件,可以从已有集群使用 tiup cluster show-config 保存,也可以从模板文件编辑而来。如果没有现成的 yaml 文件,我们可以使用 tiup cluster template 命令生成一个模板文件。
通过上图可以大致了解,模板文件主要定义了每个组件要安装在哪些节点上(图中省略了所有组件的配置项,意味着都使用默认配置)。有了模板文件之后,我们可以根据所要部署的实际拓扑信息来修改这个配置文件并保存,比如名称为 topology.yaml。
(三)检查集群环境配置及自动修复
有了拓扑文件,原则上我们就可以进行部署了,不过在部署前我们可以利用 tiup cluster 提供的 check 命令来检查所要安装节点的集群环境是否存在隐患,如果存在隐患,可以通过—apply 参数来自动修复部分问题(可能有些需要手工操作修复)。
上图是使用 tiup cluster check —apply 执行后的打印,输出信息显示有一些配置问题被自动修复,但仍然有一些无法自动修复需要手工执行。
(四)部署集群
上述检查修复完成后,便可以开始部署集群了,使用 tiup cluster deploy {cluster-name} <version> topology.yaml 命令部署集群。
当打印 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 数据库用户的密码,需要单独保存。
上述截图表示启动成功,并且生成了一个复杂的 root 密码,可以直接使用此密码,也可以进入到 mysql 客户端使用 set password 立刻修改密码。上述也显示了组件的启动顺序,PD 是整个组件的大脑所以它最先启动,TiKV 依赖 PD 启动,其次是 TiDB 启动,如果有 TiFlash 的话,TiFlash 将在 TiDB 之后启动。
(六)查看集群列表及集群详情
到目前为止,集群部署完成并成功启动,可以测试使用 mysql 客户端连接数据库集群。在后续的使用过程中,我们时不时要查看集群的健康状态,包括 Dashboard/Grafana 的 URL 地址、组件的目录及端口等。Tiup 提供 tiup cluster display {cluster-name}来查看集群详情,同时也提供 tiup cluster list 可以列出当前 tiup 管理了哪几套集群。
截图显示,tiup cluster list 显示当前管理的集群名称、用户、版本、tiup 管理路径以及私钥;tiup cluster display 显示集群名称、版本、用户、Dashboard 及 Grafana URL,以及每个组件的端口、所在节点、状态、数据目录及部署路径等。
至此,我们使用 tiup 从头到尾部署一套集群已经完成,后期如果集群不想使用可以使用 tiup cluster destroy 销毁集群,也可以使用 tiup cluster clean 清除集群的数据。如果集群规模需要扩大或缩小,可以使用 tiup cluster scale-out(扩容) 及 tiup cluster scale-in(缩容)。如果需要修改集群级别配置,可以使用 tiup cluster edit-config 修改参数并使用 tiup cluster reload 重载集群。
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/982f413acd54f6d455d42c1fa】。文章转载请联系作者。
评论