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. 👻