部署TiDB集羣

架構圖

節點規劃

120.52.146.213  Control Machine
120.52.146.214  PD1_TiDB1
120.52.146.215  PD2_TiDB2
120.52.146.216  PD3
120.52.146.217  TiKV1
120.52.146.218  TiKV2
120.52.146.219  TiKV3

軟件要求

CentOS 7.3 (64 bit) or later with Python 2.7 installed

一、在控制節點上安裝依賴軟件html

# yum -y install epel-release git curl sshpass
# yum -y install python-pip

二、建立 tidb 用戶node

# useradd tidb
# passwd tidb

三、配置sudo權限python

# visudo
tidb ALL=(ALL) NOPASSWD: ALL

四、切換用戶,生成SSH-KEYmysql

# su - tidb
$ ssh-keygen -t rsa

五、下載 tidb ansible 項目代碼git

$ git clone -b v3.0.4 https://github.com/pingcap/tidb-ansible.git

六、安裝ansible和相關依賴github

$ cd /home/tidb/tidb-ansible
$ sudo pip install -r requirements.txt
$ ansible --version

七、配置SSH互信sql

$ cd /home/tidb/tidb-ansible
$ vi hosts.ini
[servers]
120.52.146.214
120.52.146.215
120.52.146.216
120.52.146.217
120.52.146.218
120.52.146.219
 
[all:vars]
username = tidb
ntp_server = pool.ntp.org
 
$ ansible-playbook -i hosts.ini create_users.yml -u root -k

八、安裝NTPbootstrap

$ cd /home/tidb/tidb-ansible
$ ansible-playbook -i hosts.ini deploy_ntp.yml -u tidb -b

九、掛載磁盤(這一步能夠在裝系統的時候就準備好)vim

# fdisk -l
# parted -s -a optimal /dev/sdb mklabel gpt -- mkpart primary ext4 1 -1
# mkfs.ext4 /dev/sdb
# lsblk -f
 
# vim /etc/fstab
UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 0
 
# mkdir /data1
# mount -a
 
# mount -t ext4
/dev/sdb on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)

十、根據集羣架構修改 inventory.ini架構

## TiDB Cluster Part
[tidb_servers]
120.52.146.214
120.52.146.215
 
[tikv_servers]
120.52.146.217
120.52.146.218
120.52.146.219
 
[pd_servers]
120.52.146.214
120.52.146.215
120.52.146.216
 
[spark_master]
 
[spark_slaves]
 
[lightning_server]
 
[importer_server]
 
## Monitoring Part
# prometheus and pushgateway servers
[monitoring_servers]
120.52.146.214
 
[grafana_servers]
120.52.146.214
 
# node_exporter and blackbox_exporter servers
[monitored_servers]
120.52.146.214
120.52.146.215
120.52.146.216
120.52.146.217
120.52.146.218
120.52.146.219
 
[alertmanager_servers]
120.52.146.214

十一、下載部署包到本地

$ ansible-playbook local_prepare.yml

十二、初始化系統環境修改內核參數

$ ansible-playbook bootstrap.yml

1三、部署tidb集羣

$ ansible-playbook deploy.yml

1四、啓動集羣

$ ansible-playbook start.yml

1五、訪問集羣

$ mysql -uroot -h 120.52.146.214 -P 4000
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 182
Server version: 5.7.25-TiDB-v3.0.4 MySQL Community Server (Apache License 2.0)
 
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| PERFORMANCE_SCHEMA |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)

參考:
https://pingcap.com/docs/v3.0/how-to/deploy/orchestrated/ansible/
https://docs.ansible.com/ansible/latest/cli/ansible-playbook.html
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

相關文章
相關標籤/搜索