tidb 集群部署详细步骤

一、准备工作

1. 四台服务器(开通外网)

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] #下放所有服务器的内网 ip
117.50.96.236
117.50.96.235
117.50.96.234
117.50.96.233
[all:vars] #下放你希望为 tidb 服务创建的用户名(这个用户等下会在所有机器中被创建)
username = tidb
ntp_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

 本文转载自:http://www.toyou.plus/web/wzjs/54.html,更多信息请访问此网站查看

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄