TIDB - 使用TIUP在线搭建TIDB集群

一、TIUP简介

前面介绍了单机版本的环境搭建以及如何在docker中搭建环境,前面就讲到官方建议使用TiUP来搭建管理整个集群环境,下面我们来体验下。

TiUP 是 TiDB 4.0 版本引入的集群运维工具,TiUP cluster 是 TiUP 提供的使用 Golang 编写的集群管理组件,通过 TiUP cluster 组件就可以进行日常的运维工作,包括部署、启动、关闭、销毁、弹性扩缩容、升级 TiDB 集群,以及管理 TiDB 集群参数。

目前 TiUP 可以支持部署 TiDB、TiFlash、TiDB Binlog、TiCDC,以及监控系统。本文将介绍不同集群拓扑的具体部署步骤。

二、使用TIUP部署集群

整体架构
主机角色
192.168.40.130中控机,tidb-server,tikv-server,pd-server
192.168.40.158tikv-server,pd-server,monitoring_servers,grafana_servers,alertmanager_servers
192.168.40.159tikv-server,pd-server

tidb-server为无状态的服务这里搭建了一个节点作为测试,可通过lvs部署多个节点负载。注意:在生产环境中控机应该单独部署为一台主机中,管理整个集群。

下面开始安装,注意安装前关闭所有主机的防火墙和swap,以避免端口不通的问题。
临时关闭防火墙:

systemctl stop firewalld        

永久关闭防火墙,需要重启服务器:

systemctl disable firewalld

临时关闭swap:

swapoff -a

永久关闭swap,需要重启服务器:

sed -ri 's/.*swap.*/#&/' /etc/fstab
安装 TiUP 工具

以下所有操作均在中控机中执行。

1. 下载安装 TiUP 工具

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

2. 声明全局环境变量

source /root/.bash_profile

3. 安装 TiUP cluster 组件

tiup cluster

4. 如果已经安装 TiUP cluster 组件,可以更新到最新版本

tiup update --self && tiup update cluster
使用 TiUP 工具部署TIDB集群

以下操作均在中控级中进行

1. 生成TIDB的配置模板

tiup cluster template > topology.yaml

2. 修改 topology.yaml 文件

这里主要修改,pd-server,tikv-server,tidb-server,monitoring_servers、grafana_servers、alertmanager_servers的ip,这里不安装tiflash-servers,先注释掉,下面是我的配置文件信息:

# 全局变量应用于所有部署,并用作的默认值
global:
  # 运行tidb集群的用户。
  user: "root"
  # 管理集群中服务器的SSH端口
  ssh_port: 22
  # 集群部署文件、启动脚本和配置文件的存放路径。
  deploy_dir: "/tidb-deploy"
  # TiDB集群数据存储目录
  data_dir: "/tidb-data"
  # 支持值:"amd64", "arm64"(默认值:"amd64")
  arch: "amd64"

# 监控变量应用于所有机器。
monitored:
  # TiDB集群中各节点上报系统信息的通信端口
  node_exporter_port: 9100
  # Blackbox_exporter 通信端口,用于TiDB集群端口监控。
  blackbox_exporter_port: 9115

# 服务器配置用于指定PD Servers的配置
pd_servers:
  - host: 192.168.40.130
  - host: 192.168.40.158
  - host: 192.168.40.159
    # # SSH port of the server.
    # ssh_port: 22
    # # PD Server name
    # name: "pd-1"
    # # communication port for TiDB Servers to connect.
    # client_port: 2379
    # # Communication port among PD Server nodes.
    # peer_port: 2380
    # # PD Server deployment file, startup script, configuration file storage directory.
    # deploy_dir: "/tidb-deploy/pd-2379"
    # # PD Server data storage directory.
    # data_dir: "/tidb-data/pd-2379"
    # # PD Server log file storage directory.
    # log_dir: "/tidb-deploy/pd-2379/log"
    # # numa node bindings.
    # numa_node: "0,1"
    # # The following configs are used to overwrite the `server_configs.pd` values.
    # config:
    #   schedule.max-merge-region-size: 20
    #   schedule.max-merge-region-keys: 200000
 

# 服务器配置用于指定TiDB服务器的配置。
tidb_servers:
  - host: 192.168.40.130
    # # SSH port of the server.
    # ssh_port: 22
    # # The port for clients to access the TiDB cluster.
    # port: 4000
    # # TiDB Server status API port.
    # status_port: 10080
    # # TiDB Server deployment file, startup script, configuration file storage directory.
    # deploy_dir: "/tidb-deploy/tidb-4000"
    # # TiDB Server log file storage directory.
    # log_dir: "/tidb-deploy/tidb-4000/log"

#  服务器配置用于指定TiKV服务器的配置。
tikv_servers:
  - host: 192.168.40.130
  - host: 192.168.40.158
  - host: 192.168.40.159
    # # SSH port of the server.
    # ssh_port: 22
    # # TiKV Server communication port.
    # port: 20160
    # # TiKV Server status API port.
    # status_port: 20180
    # # TiKV Server deployment file, startup script, configuration file storage directory.
    # deploy_dir: "/tidb-deploy/tikv-20160"
    # # TiKV Server data storage directory.
    # data_dir: "/tidb-data/tikv-20160"
    # # TiKV Server log file storage directory.
    # log_dir: "/tidb-deploy/tikv-20160/log"
    # # The following configs are used to overwrite the `server_configs.tikv` values.
    # config:
    #   log.level: warn

# 服务器配置用于指定Prometheus Server的配置。 
monitoring_servers:
  - host: 192.168.40.158
    # # SSH port of the server.
    # ssh_port: 22
    # # Prometheus Service communication port.
    # port: 9090
    # # Prometheus deployment file, startup script, configuration file storage directory.
    # deploy_dir: "/tidb-deploy/prometheus-8249"
    # # Prometheus data storage directory.
    # data_dir: "/tidb-data/prometheus-8249"
    # # Prometheus log file storage directory.
    # log_dir: "/tidb-deploy/prometheus-8249/log"

# 服务器配置用于指定Grafana服务器的配置。  
grafana_servers:
  - host: 192.168.40.158
    # # Grafana web port (browser access)
    # port: 3000
    # # Grafana deployment file, startup script, configuration file storage directory.
    # deploy_dir: /tidb-deploy/grafana-3000

# 服务器配置用于指定Alertmanager服务器的配置。 
alertmanager_servers:
  # # The ip address of the Alertmanager Server.
  - host: 192.168.40.158
    # # SSH port of the server.
    # ssh_port: 22
    # # Alertmanager web service port.
    # web_port: 9093
    # # Alertmanager communication port.
    # cluster_port: 9094
    # # Alertmanager deployment file, startup script, configuration file storage directory.
    # deploy_dir: "/tidb-deploy/alertmanager-9093"
    # # Alertmanager data storage directory.
    # data_dir: "/tidb-data/alertmanager-9093"
    # # Alertmanager log file storage directory.
    # log_dir: "/tidb-deploy/alertmanager-9093/log"

3. 检查和自动修复集群存在的潜在风险

tiup cluster check ./topology.yaml --apply --user root -p

出现
如果出现Fail表示有错误,比如,在我部署过程中出现了numactl not usable, bash: numactl: command not found, auto fixing not supported的错误,是因为缺少了numactl工具,需要在每个部署主机安装numactl:

 yum -y install numactl.x86_64

出现其他错误可以参考下面这篇博客中的内容哦:

https://blog.csdn.net/whiteBearClimb/article/details/116058997

4. 部署 TiDB 集群
注意部署的tidb版本,可以通过 tiup cluster list 来查看现有的版本。tidb-test 表示集群的名称。

tiup cluster deploy tidb-test v5.0.0 ./topology.yaml --user root -p

在这里插入图片描述
执行上面指令会出现以上显示,输入y开始在每个节点下载。
在这里插入图片描述
出现上面的信息,就证明集群已经安装成功了。

5. 检查集群情况

tiup cluster display tidb-test

在这里插入图片描述
可以看到服务都处于停止状态,上面只是进行了集群的部署,启动还需进行集群的启动。

6. 启动集群

tiup cluster start tidb-test

在这里插入图片描述
到这里我们再查看下集群的状态:

tiup cluster display tidb-test

在这里插入图片描述
这下都处于启动状态了,下面可以通过mysql客户端进行连接测试了:

7. 使用navicat 连接TIDB

默认端口为4000,没有密码。
在这里插入图片描述
到这里集群就已经搭建成功了。

8. 查看监控monitoring服务

http://192.168.40.158:9090/

在这里插入图片描述
9. 查看grafana服务

http://192.168.40.158:3000

默认用户名和密码都是admin,确定后需要重置新密码,进去后可看到我们部署的tidb-test集群:
在这里插入图片描述
点击群可以查看每个组件的详细情况:

在这里插入图片描述
10. 查看告警管理alertmanager服务

http://192.168.40.158:9093

在这里插入图片描述
11. 查看dashboard
dashboard已在pd中自带了,所以随便一个pd节点的ip就可以打开dashboard页面。

http://http://192.168.40.158:2379/dashboard

在这里插入图片描述

默认没有密码,直接登录即可。
在这里插入图片描述
集群信息,SQL监控等等,都可以在这里进行分析。

关于TIUP的详细指令介绍,可以参考下面一篇我的博客:https://blog.csdn.net/qq_43692950/article/details/121460770

在这里插入图片描述
喜欢的小伙伴可以关注我的个人微信公众号,获取更多学习资料!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小毕超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值