tidb 集群部署详细步骤
本文转载自:http://www.toyou.plus/web/wzjs/54.htm ,更多信息请查看原文对应网站!
一、准备工作
1. 四台服务器(开通外网)
- 117.50.96.236 centos 7.3 64位
- 117.50.96.235 centos 7.3 64位
- 117.50.96.234 centos 7.3 64位
- 117.50.96.233 centos 7.3 64位
2、修改个机器主机名(永久修改)
hostnamectl set-hostname centos701
3. 选取主控机, 并做些简单的配置
我选了 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
安装 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/
二、通过 tidb-ansible 为所有服务器添加用户和密钥
编辑 hosts.ini 文件
vim hosts.ini[server] #下放所有服务器的内网 ip117.50.96.236117.50.96.235117.50.96.234117.50.96.233
[all:vars] #下放你希望为 tidb 服务创建的用户名(这个用户等下会在所有机器中被创建)username = tidbntp_server = pool.ntp.org
使用 tidb-ansible 在刚才配的所有机器中创建用户
ansible-playbook -i hosts.ini create_users.yml -u root -k
注意:交互部分输入 root 密码
配置 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] 这个要放各个服务器挂载的磁盘路径
- 其他配置可以先不动,也可以根据自己需求来。
三、启动 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
此步骤如果出现 Ansible run Faild,ansible version is too low等等错误,可能是由于没有安装pip,安装命令如下:
1、没有python-pip包就执行命令
yum -y install epel-release
2、执行成功之后,再次执行
yum install python-pip
3、对安装好的pip进行升级
pip install --upgrade pip
4、安装requirements.txt依赖(需要再tidb目录下执行此命令)
pip install -r requirements.txt
接下来就要启动 tidb 集群了,如果服务器的配置达不到 tidb 要求,集群是无法启动的。不过,我们可以取消 tidb 的强制验证策略(仅限测试,生产环境请不要这样做)
修改 vim bootstrap.yml 取消系统检查
vim bootstrap.yml
注释以下内容
#- name: check system
# hosts: all
# any_errors_fatal: true
# roles:
#- check_system_static
#- { role: check_system_optional, when: not dev_mode|default(false) }#- name: tikv_servers machine benchmark
# hosts: tikv_servers
# gather_facts: false
# roles:
#- { role: machine_benchmark, when: not dev_mode|default(false) }// 想要深入看下具体的系统要求和性能要求可以查看这两个文件
// roles/check_system_optional/defaults/main.yml
// roles/machine_benchmark/defaults/main.yml
###运行以下命令取消检测
ansible-playbook bootstrap.yml --extra-vars "dev_mode=True"
启动 tidb 集群
ansible-playbook bootstrap.yml
ansible-playbook deploy.yml
ansible-playbook start.yml
测试
查看主控机的端口状态(如果有如下这些端口,且上述步骤没有红色报错,说明启动成功了)
netstat -tnpl
在浏览器中访问 117.50.96.236:3000(主控机 ip【[grafana_servers]下得IP】加3000端口), 可以看到监控界面(初始用户和密码:admin/admin)
启动集群
此操作会按顺序启动整个TiDB集群所有组件 (包括PD、TiDB、TiKV等组件可监控组件)。
ansible-playbook start.yml
四、集群启停
关闭集群
此操作会按顺序关闭整个TiDB集群所有组件 (包括PD、TiDB、TiKV等组件可监控组件)。
ansible-playbook stop.yml
清除集群数据
此操作会关闭TiDB、Pump、TiKV、PD服务,并清空Pump、TiKV、PD数据目录。
ansible-playbook unsafe_cleanup_data.yml
销毁集群
此操作会关闭集群,并清空部署目录,若部署目录为挂载点,会报错,可忽略。
ansible-playbook unsafe_cleanup.yml