TIDB - 使用TIUP在线搭建TIDB集群
Posted 小毕超
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.158 | tikv-server,pd-server,monitoring_servers,grafana_servers,alertmanager_servers |
192.168.40.159 | tikv-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
关于TIUP的详细指令介绍,可以参考下面一篇我的博客:https://blog.csdn.net/qq_43692950/article/details/121460770
以上是关于TIDB - 使用TIUP在线搭建TIDB集群的主要内容,如果未能解决你的问题,请参考以下文章
使用 TiUP cluster 在单机上模拟生产环境部署步骤