感谢你的帮助,我把最终的解决方法,分享出来,大体上都是根据官方文件做的,这里只多了一个细节操作
扩容 PD 节点
目标: 加入新节点 172.160.180.18
-
编辑 inventory.ini 文件,加入节点信息
-
清空pd缓存(如果之前没安装,就跳过此步)
[tidb@test1 tidb-ansible]$ ansible-playbook unsafe_cleanup.yml --tags=pd -l 172.160.180.18
- 重新部署
[tidb@test1 tidb-ansible]$ ansible-playbook bootstrap.yml -l 172.160.180.18 --extra-vars "dev_mode=True"
Congrats! All goes well. :-)
[tidb@test1 tidb-ansible]$
[tidb@test1 tidb-ansible]$
[tidb@test1 tidb-ansible]$
[tidb@test1 tidb-ansible]$
[tidb@test1 tidb-ansible]$ ansible-playbook deploy.yml --tags=pd -l 172.160.180.18
Congrats! All goes well. :-)
[tidb@test1 tidb-ansible]$
- 进入节点机 test4, 修改节点机配置
# 例子
......
exec bin/pd-server
--name="pd_test4"
--client-urls="http://172.160.180.18:2379"
--advertise-client-urls="http://172.160.180.18:2379"
--peer-urls="http://172.160.180.18:2380"
--advertise-peer-urls="http://172.160.180.18:2380"
--data-dir="/home/tidb/deploy/data.pd"
--initial-cluster="pd_test1=http://172.160.180.46:2380,pd_test2=http://172.160.180.47:2380,pd_test3=http://172.160.180.48:2380,pd_test4=http://172.160.180.18:2380" # 删除这一行,不可以使用注释,要直接删除
--join="http://172.160.180.48:2379" # 替换为这一行,IP地址是现有PD集群中的任意一个即可
--config=conf/pd.toml
--log-file="/home/tidb/deploy/log/pd.log" 2>> "/home/tidb/deploy/log/pd_stderr.log"
......
[tidb@test4 ~]$ vim /home/tidb/deploy/scripts/run_pd.sh
#!/bin/bash
set -e
ulimit -n 1000000
# WARNING: This file was auto-generated. Do not edit!
# All your edit might be overwritten!
DEPLOY_DIR=/home/tidb/deploy
cd "${DEPLOY_DIR}" || exit 1
exec bin/pd-server
--name="pd_test4"
--client-urls="http://172.160.180.18:2379"
--advertise-client-urls="http://172.160.180.18:2379"
--peer-urls="http://172.160.180.18:2380"
--advertise-peer-urls="http://172.160.180.18:2380"
--data-dir="/home/tidb/deploy/data.pd"
--join="http://172.160.180.48:2379"
--config=conf/pd.toml
--log-file="/home/tidb/deploy/log/pd.log" 2>> "/home/tidb/deploy/log/pd_stderr.log"
- 删除缓存节点机中的缓存数据(如果之前没安装,就跳过此步)
# 删除缓存数据
[tidb@test4 ~]$ rm -rf /home/tidb/deploy/data.pd/
# 删除历史pd.log
[tidb@test4 ~]$ rm -rf /home/tidb/deploy/log/pd*
- 启动pd
[tidb@test4 ~]$ /home/tidb/deploy/scripts/start_pd.sh
- 进入主控机,查看PD节点是否成功加入
[tidb@test1 tidb-ansible]$ /home/tidb/tidb-ansible/resources/bin/pd-ctl -u "http://172.160.180.46:2379" -d member
- 滚动升级整个集群
[tidb@test1 tidb-ansible]$ ansible-playbook rolling_update.yml
- 启动PD
[tidb@test1 tidb-ansible]$ ansible-playbook start.yml --tags=pd -l 172.160.180.18
- 更新监控
[tidb@test1 tidb-ansible]$ ansible-playbook rolling_update_monitor.yml --tags=prometheus