您现在的位置是:首页 > 程序园 > 后端系列后端系列

TiD集群部署(在线使用ansible部署)教程

冷猫2020-07-17【后端系列】人已围观

简介TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Onlin

tidb 集群部署详细步骤

 

一、准备工作

 

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位


修改各机器主机名(永久修改)

 
hostnamectl set-hostname centos701


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

我选了 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


安装 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

 

Tags:ansible   TiDB   ansible安装TiDB集群

很赞哦! ()

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐

站点信息

  • 建站时间:2020.05.20
  • 文章统计31篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们