TIDB集群搭建-流水线

官方文档:TIDB简介

 TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为 OLTP (Online Transactional Processing) 和 OLAP (Online Analytical Processing) 场景提供一站式的解决方案。

官方链接:https://pingcap.com/docs-cn/v3.0/overview/

系统的初始化在此不在赘述,直接贴出本次实验所用系统

 [root@localhost yum.repos.d]# lsb_release -a
 LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
 Distributor ID: CentOS
 Description:    CentOS Linux release 7.6.1810 (Core) 
 Release:    7.6.1810
 Codename:   Core

## 这个是本次实验所用系统的角色分配

Host Hostname Tidb Pd Tikv Grafana Tispark Tidb-ansible cpu ram
192.168.2.91 tbpd1         2*12 16G
192.168.2.92 tbpd2         2*12 16G
192.168.9.93 pd3     2*12 32G
192.168.9.94 tikv1           2*12 16G
192.168.9.95 tikv2           2*12 16G
192.168.9.96 tikv3           2*12 16G

正式开始搭建TIDB集群

  • 一些约定

  • 账户分为root和yx,密码均为123

  • 所有服务安装目录均为/home/yx/server

  1. 关闭ssh服务的dns反解析,很重要,关系到后期是否能成功启动。

     vim /etc/ssh/sshd_config
     UseDNS no
     systemctl reload sshd.service
  2. 此次实验选择的中控机是93,因此首先切换到93服务器

  • 安装依赖包

     yum -y install epel-release git curl sshpass
     yum -y install python-pip
  • 普通用户免密登录root,新增一行

     vim /etc/sudoers
     yx ALL=(ALL) NOPASSWD: ALL
  • 以yx用户登录中控机,生成ssh key, 提示 Enter passphrase 时直接回车即可。执行成功后,ssh 私钥文件为 /home/yx/.ssh/id_rsa, ssh 公钥文件为 /home/yx/.ssh/id_rsa.pub。

  • 如果是已有公钥的服务器,此处直接拷贝id_rsa.pub这个文件到其他五台服务器的/home/yx/.ssh/authorized_keys文件下就好。

     [yx@pd3 ~]$ ssh-keygen -t rsa
     Generating public/private rsa key pair.
     Enter file in which to save the key (/home/yx/.ssh/id_rsa): 
     Created directory '/home/yx/.ssh'.
     Enter passphrase (empty for no passphrase): 
     Enter same passphrase again: 
     Your identification has been saved in /home/yx/.ssh/id_rsa.
     Your public key has been saved in /home/yx/.ssh/id_rsa.pub.
     The key fingerprint is:
     SHA256:nEIhIFBHMJTJsSC20wQcRNnxTzznXx2OkjEQpbrMF3Y yx@localhost.localdomain
     The key's randomart image is:
     +---[RSA 2048]----+
     |XX%X= .  oo.     |
     |o=B=....  o      |
     | o.. ..+ o o   . |
     |  .  .o.=.  + + .|
     |      .oS+ E o o |
     |      o.o + o    |
     |       + . .     |
     |        .        |
     |                 |
     +----[SHA256]-----+于版本的选择

关于版本的选择

tidb-ansible 分支 TiDB 版本 备注
release-2.0 2.0 版本 最新 2.0 稳定版本,可用于生产环境。
release-2.1 2.1 版本 最新 2.1 稳定版本,可用于生产环境(建议)。
3.0 版本 v3.0.0-beta、v3.0.0-beta.1 等 目前是 beta 版本,不建议用于生产环境。
latest 版本 None 包含最新特性,每日更新,不建议用于生产环境。

安装tidb-ansible

  1. 在中控机器上下载 TiDB-Ansible 2.1,此处是93服务器

 [yx@pd3 server]$ git clone -b release-2.1 https://github.com/pingcap/tidb-ansible.git
  1. 以 yx用户登录中控机,请务必按以下方式通过 pip 安装 Ansible 及其相关依赖的指定版本,否则会有兼容问题。

 cd /home/yx/server/tidb-ansible
 sudo pip install -r ./requirements.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple
 ansible --version
 ansible 2.6.17

 

配置ansible的ssh互信规则

  1. 在中控机上配置部署机器 ssh 互信及 sudo 规则

  • 此处有两个选择,要么按照我的操作步骤来,要么手动拷贝中控机的公钥到其他服务器上,做免秘钥认证

  • 编辑hosts.ini文件,添加组和username

[yx@pd3 tidb-ansible]$ vim hosts.ini 
[servers]
192.168.9.91
192.168.9.92
192.168.9.93
192.168.9.94
192.168.9.95
192.168.9.96

[all:vars]
username = yx    //官方是要创建tidb用户,此处统一使用yx用户
ntp_server = pool.ntp.org
  1. 执行以下命令,按提示输入部署目标机器 root 用户密码。该步骤将在部署目标机器上创建 yx 用户,并配置 sudo 规则,配置中控机与部署目标机器之间的 ssh 互信。

[yx@pd3 tidb-ansible]$ ansible-playbook -i hosts.ini create_users.yml -u root -k
SSH password: 
...
PLAY RECAP **********************************************************************************************************************************************************************************
192.168.9.91               : ok=3    changed=2    unreachable=0    failed=0   
192.168.9.92               : ok=3    changed=2    unreachable=0    failed=0   
192.168.9.93               : ok=3    changed=2    unreachable=0    failed=0   
192.168.9.94               : ok=3    changed=2    unreachable=0    failed=0   
192.168.9.95               : ok=3    changed=2    unreachable=0    failed=0   
192.168.9.96               : ok=3    changed=2    unreachable=0    failed=0   

Congrats! All goes well. :-)
  1. 创建完成后可以ssh试下能否免密登录其他机器。sudo也是不要密码的。

  2. 可选项:如果其他服务器都是新的,没有安装NTP服务也没有做时间同步,那么就执行以下命令在整个集群上安装NTP服务,反之直接略过。

[yx@pd3 tidb-ansible]$ ansible-playbook -i hosts.ini deploy_ntp.yml -u yx -b -T 600
...
PLAY RECAP **********************************************************************************************************************************************************************************
192.168.9.91               : ok=6    changed=3    unreachable=0    failed=0   
192.168.9.92               : ok=6    changed=3    unreachable=0    failed=0   
192.168.9.93               : ok=6    changed=3    unreachable=0    failed=0   
192.168.9.94               : ok=6    changed=3    unreachable=0    failed=0   
192.168.9.95               : ok=6    changed=3    unreachable=0    failed=0   
192.168.9.96               : ok=6    changed=3    unreachable=0    failed=0   

Congrats! All goes well. :-)

 

分配角色,并完成初始化以及部署

  1. 对照你的角色分配表,配置inventory.ini文件

[yx@pd3 tidb-ansible]$ vim inventory.ini
## TiDB Cluster Part
[tidb_servers]
192.168.9.91
192.168.9.92

[tikv_servers]
192.168.9.94
192.168.9.95
192.168.9.96

[pd_servers]
192.168.9.91
192.168.9.92
192.168.9.93


[spark_master]	//如果TIspark角色要单独分离出来,需要在master和slave都写上,否则默认安装在TIDB角色上
192.168.9.93
[spark_slaves]	

[lightning_server]

[importer_server]

## Monitoring Part
# prometheus and pushgateway servers
[monitoring_servers]	//监控
192.168.9.93
[grafana_servers]	//监控
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值