天天看点

TiDB安装配置--PD扩容

1、如果是在已经部署过TiDB的服务器上部署PD节点,则先需要将原来的deploy目录删掉。

2、编辑hosts.ini(中控机)

将新节点IP加入[servers]中

3、中控机编辑

inventory.ini

文件,添加节点信息置于

[pd_servers]

主机组最后一行: 

[pd_servers]
原有PD服务器IP列表
新增PD服务器IP


[monitored_servers]
原有集群服务器IP列表
自增PD服务器IP
           

4、如果是之前未在集群中的新服务器,则需配置ssh互信(新节点)

4.1 添加tidb用户(新节点)

useradd  tidb

4.2 设置登录密码(新节点)

passwd

4.3 配置sudo免密码,编辑visudo,将以下添加至文件末尾(新节点)

visudo
tidb ALL=(ALL) NOPASSWD: ALL
           

4.4 将公钥发送到目标机器(中控机执行)

ssh-copy-id -i ~/.ssh/id_rsa.pub 新节点IP
           

4.5 测试是否配置互信成功

ssh 新节点IP

如果无需密码成功登录新节点服务器,则表示ssh互信配置成功

5、首先要检查服务器的ntpd服务是否正常(每次在中控机执行相关初始化、部署、滚动升级过程中,如果看到make sure ntp服务是否正常,都检查对应服务器ntpd服务)

#ntpstat

异常:unsynchronised

   polling server every 64 s

正常:synchronised to NTP server (94.130.49.186) at stratum 4

   time correct to within 1167 ms

   polling server every 64 s

如遇异常,则可执行一下命令,重新部署ntp服务(中控机执行):

ansible-playbook -i hosts.ini deploy_ntp.yml -u tidb -b

6、初始化新增节点(中控机执行)

ansible-playbook bootstrap.yml -l 新增节点IP
           

7、部署新增节点

ansible-playbook deploy.yml -l 新增节点IP
           

8、新增节点修改脚本{deploy_dir}/scripts/run_pd.sh

8.1 移除--initial-cluster="" \ (不能使用注释符号#,要删除)

8.2 添加--join="http://原有PD节点中的一个IP:2379" \

8.3 启动PD服务:

{deploy_dir}/scripts/start_pd.sh

9、中控机查看节点是否注册成功(中控机执行,此处只是注册pd节点)

/home/tidb/tidb-ansible/resources/bin/pd-ctl -u "http://原有PD节点中的一个IP:2379" -d member
           

10、在中控机滚动升级整个集群(中控机执行)

ansible-playbook rolling_update.yml
           

11、更新Prometheus 配置并重启(中控机执行)

ansible-playbook rolling_update_monitor.yml --tags=prometheus