centos 7 安装配置TIDB集群

安装参考文档 
https://pingcap.com/docs-cn/op-guide/ansible-deployment/

https://github.com/pingcap/docs-cn/blob/master/op-guide/ansible-deployment.md#如何检测-ntp-服务是否正常

相关准备工作


systemctl stop firewalld.service 
systemctl disable firewalld.service


[root@tidb1 tidb-ansible]# cat /etc/hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.161 tidb1
192.168.137.162 tidb2
192.168.137.163 tidb3
192.168.137.164 tidb4
192.168.137.165 tidb5
192.168.137.166 tidb6




配置 ssh  



ssh-keygen  -t rsa 
ssh-copy-id -i root@192.168.137.161
ssh-copy-id -i root@192.168.137.162
ssh-copy-id -i root@192.168.137.163
ssh-copy-id -i root@192.168.137.164
ssh-copy-id -i root@192.168.137.165
ssh-copy-id -i root@192.168.137.166



ssh localhost 
ssh tidb1
ssh tidb2
ssh tidb3
ssh tidb4
ssh tidb5
ssh tidb6



scp -rp /etc/hosts tidb2:/etc/
scp -rp /etc/hosts tidb3:/etc/
scp -rp /etc/hosts tidb4:/etc/
scp -rp /etc/hosts tidb5:/etc/
scp -rp /etc/hosts tidb6:/etc/


[root@tidb1 ~]# yum install -y ansible 


===================  下面 进入真正的 实施部署阶段了=== 


TiDB ansible 部署方案


概述


Ansible 是一款自动化运维工具,TiDB-Ansible 是 PingCAP 基于 Ansible playbook 功能编写的集群部署工具。使用 TiDB-Ansible 可以快速部署一个完整的 TiDB 集群(包括 PD、TiDB、TiKV 和集群监控模块)。


本部署工具可以通过配置文件设置集群拓扑,一键完成以下各项运维工作:


初始化操作系统,包括创建部署用户、设置 hostname 等
部署组件
滚动升级,滚动升级时支持模块存活检测
数据清理
环境清理
配置监控模块
准备机器


部署中控机一台:


Python 2.6 或 Python 2.7,安装有 Ansible 2.3 版本或以上版本。
依赖 Python Jinja2 及 MarkupSafe 指定版本模块: pip install Jinja2==2.7.2 MarkupSafe==0.11
可通过 ssh 登录目标机器,支持密码登录或 ssh authorized_key 登录。
中控机可以是部署目标机器中的某一台,该机器需开放外网访问,并且安装 curl 软件包,用于下载 binary。
如使用 Docker 方式部署,依赖详见如何使用 docker 方式部署 TiDB,默认为 binary 部署方式。
部署目标机器若干


建议4台及以上,TiKV 至少3实例,且与 TiDB、PD 模块不位于同一主机,详见部署建议。
Linux 操作系统,x86_64 架构(amd64),内核版本建议 3.10 以上,推荐 CentOS 7.3 及以上版本, 文件系统推荐 ext4(部分内核版本 xfs 文件系统有 bug, 本工具检查到 xfs 文件系统有 bug 会退出)。
机器之间网络互通,防火墙、iptables 等可以在部署验证时关闭,后期开启。
机器的时间、时区设置正确(要求机器时间同步),有 NTP 服务可以同步正确时间, ubuntu 系统需单独安装 ntpstat 软件包,详见如何检测 NTP 服务是否正常。
若使用普通用户作为 Ansible SSH 远程连接用户,该用户需要有 sudo 到 root 权限,或直接使用 root 用户远程连接。
Python 2.6 或 Python 2.7。
如使用 Docker 方式部署,依赖详见如何使用 docker 方式部署 TiDB,默认为 binary 部署方式。
在中控机器上安装配置 Ansible






按照 官方手册 安装 Ansible,推荐使用 Ansible 2.3 及以上版本。 安装完成后,可通过 ansible --version 查看版本。

使用以下命令从 Github TiDB-Ansible 项目 上下载 TiDB-Ansible 相应版本,默认的文件夹名称为 tidb-ansible。该文件夹包含用 TiDB-Ansible 来部署 TiDB 集群所需要的所有文件。


下载 GA 版本:


git clone -b release-1.0 https://github.com/pingcap/tidb-ansible.git

git clone -b release-2.0 https://github.com/pingcap/tidb-ansible.git  -- 最新版本


git clone https://github.com/pingcap/tidb-ansible.git


如何使用 Ansible 部署 NTP 服务


参照在中控机器上下载 TiDB-Ansible下载 TiDB-Ansible,将你的部署目标机器 IP 添加到 [servers] 区块下,ntp_server 变量的值 pool.ntp.org 可替换为其他 NTP server,在启动 NTP 服务前,系统会 ntpdate 该 NTP server,Ansible 安装的 NTP 服务使用安装包默认 server 列表,见配置文件 cat /etc/ntp.conf 中 server 参数。


$ vi hosts.ini
[servers]
192.168.137.164
192.168.137.165
192.168.137.166
192.168.137.161
192.168.137.162
192.168.137.163




[all:vars]
username = tidb
ntp_server = pool.ntp.org
执行以下命令,按提示输入部署目标机器 root 密码。


$ ansible-playbook -i hosts.ini deploy_ntp.yml -k




[root@tidb1 tidb-ansible]# cat inventory.ini 
## TiDB Cluster Part
[tidb_servers]
192.168.137.161
192.168.137.162


[tikv_servers]
192.168.137.164
192.168.137.165
192.168.137.166
[pd_servers]
192.168.137.161
192.168.137.162
192.168.137.163


[spark_master]
192.168.137.164
[spark_slaves]
192.168.137.165
192.168.137.166


## Monitoring Part
# prometheus and pushgateway servers
[monitoring_servers]
192.168.137.161
[grafana_servers]
192.168.137.161
# node_exporter servers
[monitored_servers]
192.168.137.161
192.168.137.162
192.168.137.163
192.168.137.164
192.168.137.165
192.168.137.166




## Binlog Part
[pump_servers:children]
tidb_servers




## Group variables
[pd_servers:vars]
# location_labels = ["zone","rack","host"]


## Global variables
[all:vars]
deploy_dir = /home/tidb/deploy


## Connection
# ssh via normal user
#ansible_user = tidb


# ssh via root:
 ansible_user = root
 ansible_become = true
 ansible_become_user = tidb


cluster_name = test-cluster


tidb_version = v1.0.8


# deployment methods, [binary, docker]
deployment_method = binary


# process supervision, [systemd, supervise]
process_supervision = systemd


# timezone of deployment region
timezone = Asia/Shanghai
set_timezone = True


enable_firewalld = False
# check NTP service
enable_ntpd = True
machine_benchmark = True
set_hostname = False


## binlog trigger
enable_binlog = False
# zookeeper address of kafka cluster, example:
# zookeeper_addrs = "192.168.0.11:2181,192.168.0.12:2181,192.168.0.13:2181"
zookeeper_addrs = ""


# KV mode
deploy_without_tidb = False


使用local_prepare.yml,联网下载 tidb binary 到中控机
ansible-playbook local_prepare.yml


初始话系统环境,修改内核参数
如果服务用户尚未建立,此初始化操作会自动创建该用户

ansible-playbook bootstrap.yml 

如果ansible 使用root用户远程连接需要密码,使用 -k 参数 ,执行playbook ,同理: 
ansible-playbook bootstrap.yml -k 

ansible-playbook bootstrap.yml 
如果是非SSD 测试的话 ,最好将如下的内容注释掉 
# name: machine benchmark
#  hosts: tikv_servers
#  gather_facts: false
#  roles:
#    - { role: machine_benchmark, when: machine_benchmark }



部署 TIDB 集群软件
ansible-playbook deploy.yml -k


启动TIDB 集群 


ansible-playbook start.yml -k




测试集群
测试连接 TiDB 集群,推荐在 TiDB 前配置负载均衡来对外统一提供 SQL 接口。

使用 MySQL 客户端连接测试,TCP 4000 端口是 TiDB 服务默认端口。


[root@tidb1 ~]# netstat -anp | grep 4000 
tcp6       0      0 :::4000                 :::*                    LISTEN      39591/bin/tidb-serv 
tcp6       0      0 192.168.137.161:4000    192.168.137.1:14022     ESTABLISHED 39591/bin/tidb-serv 
tcp6       0      0 192.168.137.161:4000    192.168.137.1:14018     ESTABLISHED 39591/bin/tidb-serv 

msql -u root -h 192.168.137.161 -P 4000




[root@tidb1 ~]# mysql -h 127.0.0.1 -uroot -P 4000 -D mysql
bash: mysql: command not found.

rpm -ivh mysql57-community-release-el7-11.noarch.rpm 
yum install -y mysql-community-client.x86_64 

测试 

[root@tidb1 ~]# mysql -h 127.0.0.1 -uroot -P 4000 

 mysql -h 192.168.137.161 -uroot -P 4000 
mysql -h 192.168.137.161 -uroot -P 4000 -D mysql 


=== 监控 == 
http://192.168.137.161:3000/ 密码:admin/admn




==== 运维


ansible-playbook stop.yml  关闭数据库 


=== 销毁集群 


ansible-playbook stop.yml  停用集群


ansible-playbook unsafe_cleanup.yml  销毁集群 









































  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值