TIDB 集群部署详细步骤

1. 准备工作

  • 购买 8+ 服务器。8核,16G RAM,100G SSD ROM(At least
内网IP 外网IP 系统版本
10.9.175.9 117.50.96.236 CentOS 7.3 64位
10.9.26.116 117.50.96.181 CentOS 7.3 64位
10.9.150.18 117.50.96.225 CentOS 7.3 64位
10.9.180.126 117.50.96.200 CentOS 7.3 64位
10.9.151.170 117.50.96.207 CentOS 7.3 64位
10.9.136.221 117.50.96.201 CentOS 7.3 64位
10.9.34.7 117.50.96.208 CentOS 7.3 64位
10.9.54.200 117.50.96.180 CentOS 7.3 64位

2. 选取主控机, 并做些简单的配置

  • 我选了 117.50.96.236 作为主控机器
# ssh 到主控机
ssh root@117.50.96.236     

# 添加用户
useradd -m -d /home/tidb tidb

# 赋予权限,并免密
visudo

// 在文件尾部添加如下一行
tidb ALL=(ALL) NOPASSWD: ALL

# 切换到 tidb 用户
su - tidb

# 创建 ssh 密钥
ssh-keygen -t rsa

3.安装 TIDB 依赖工具

# 安装 git 
sudo yum install git -y

# 安装 ansible
sudo yum install ansible -y

# 克隆 tidb-ansible
git clone -b v3.0.0 https://github.com/pingcap/tidb-ansible.git tidb-ansible-v3.0.0

# 进入克隆后的文件夹中
cd tidb-ansible-v3.0.0/

4. 通过 tidb-ansible 为所有服务器添加用户和密钥

# 编辑 hosts.ini 文件
vim hosts.ini

// [server] 下放所有服务器的内网 IP
// [all:vars] -> username 下放你希望为 TIDB 服务创建的用户名(这个用户等下会在所有机器中被创建)
# 使用 tidb-ansible 在刚才配的所有机器中创建用户
ansible-playbook -i hosts.ini create_users.yml -u root -k 

// 交互部分输入 root 密码

5. 配置 TIDB 拓扑结构(分配服务器资源)

# 编辑 inventory.ini 文件
vim inventory.ini

// 配置拓扑结构为:1个 tidb,3个 pd,3个tikv,1个 主控机
// [tidb_servers] 放一个 ip,声明这个服务器是 tidb 工人
// [tikv_servers] 放三个 ip,声明这个三个服务器是 tikv 工人
// [pd_servers] 放三个 ip,声明这三个服务器是 pd 工人
// [monitoring_servers] 放一个 ip,声明这个服务器是监控(jiangong)
// [grafana_servers] 同上
// [monitored_servers] 放所有 ip,声明这些服务器需要被监控
// [alertmanager_servers] 和监控机保持一致
// [all:vars] 这个要放各个服务器挂载的磁盘路径
// 其他配置可以先不动,也可以根据自己需求来。

6. 启动 TIDB 集群

# 预处理配置信息(按照拓扑结构分配资源)
ansible -i inventory.ini all -m shell -a 'whoami'
ansible -i inventory.ini all -m shell -a 'whoami' -b
ansible-playbook local_prepare.yml
# 接下来就要启动 tidb 集群了,如果服务器的配置达不到 tidb 要求,集群是无法启动的。不过,我们可以取消 tidb 的强制验证策略(仅限测试,生产环境请不要这样做)

# 修改 vim bootstrap.yml 取消系统检查
vim bootstrap.yml

// 注释文件内容的 31~42 行

// 想要深入看下具体的系统要求和性能要求可以查看这两个文件
// roles/check_system_optional/defaults/main.yml  
// roles/machine_benchmark/defaults/main.yml
# 启动 TIDB 集群
ansible-playbook bootstrap.yml
ansible-playbook deploy.yml
ansible-playbook start.yml

7. 测试

# 查看主控机的端口状态(如果有如下这些端口,且上述步骤没有红色报错,说明启动成功了)
netstat -tnpl
  • 在浏览器中访问 117.50.96.236:3000(主控机 IP加3000端口), 可以看到监控界面(初始用户和密码:admin/admin)

End. 👻

Show Comments