1、如果是在已經部署過TiDB的伺服器上部署PD節點,則先需要将原來的deploy目錄删掉。
2、編輯hosts.ini(中控機)
将新節點IP加入[servers]中
3、中控機編輯 inventory.ini
檔案,添加節點資訊置于 [pd_servers]
主機組最後一行:
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