使用TiDB Ansible 擴(kuò)容縮容TiDB 集群,可以在不影響線上服務(wù)的情況下進(jìn)行擴(kuò)容和縮容。本文帶大家走進(jìn)TiDB的擴(kuò)縮容場景實(shí)驗(yàn)。
當(dāng)前tidb拓?fù)浣Y(jié)構(gòu)如下:
Name | Host ip | Service |
Ti1 | 192.168.37.132 | Tidb,pd |
Ti2 | 192.168.37.128 | Tikv1 |
Ti3 | 192.168.37.129 | Tikv2 |
Ti4 | 192.168.37.130 | Tikv3 |
1、擴(kuò)容tidb/tikv(可使用同樣的步驟添加 TiKV 節(jié)點(diǎn),tikv不演示)擴(kuò)容tidb節(jié)點(diǎn)(IP:192.168.37.131)
編輯 inventory.ini 文件,添加節(jié)點(diǎn)信息:
初始化新增節(jié)點(diǎn):
ansible-playbookbootstrap.yml -l 192.168.37.131
部署新增節(jié)點(diǎn):
ansible-playbookdeploy.yml -l 192.168.37.131
啟動新節(jié)點(diǎn)服務(wù):
ansible-playbookstart.yml -l 192.168.37.131
更新 Prometheus 配置并重啟:
ansible-playbookrolling_update_monitor.yml --tags=prometheus
打開瀏覽器訪問監(jiān)控平臺:http://192.168.37.132:3000,監(jiān)控整個集群和新增節(jié)點(diǎn)的狀態(tài)
可以看到新擴(kuò)容tidb節(jié)點(diǎn)已添加到tidb集群,tidb擴(kuò)容成功。
2、擴(kuò)容pd
編輯 inventory.ini 文件,添加節(jié)點(diǎn)信息:
本次添加pd節(jié)點(diǎn)(192.168.37.133)
初始化新增節(jié)點(diǎn):
ansible-playbookbootstrap.yml -l 192.168.37.133
部署新增節(jié)點(diǎn):
ansible-playbookdeploy.yml -l 192.168.37.133
登錄新增的 PD 節(jié)點(diǎn),編輯啟動腳本:{deploy_dir}/scripts/run_pd.sh
D1:移除--initial-cluster="xxxx" 配置,注意這里不能在行開頭加注釋符#。
D2:添加 --join="http://192.168.37.132:2379" ,IP地址(192.168.37.132)可以是集群內(nèi)現(xiàn)有PD IP 地址中的任意一個。
D3: 在新增PD 節(jié)點(diǎn)中手動啟動PD 服務(wù):
{deploy_dir}/scripts/start_pd.sh
D4: 使用pd-ctl 檢查新節(jié)點(diǎn)是否添加成功:
/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d member
可以看到pd節(jié)點(diǎn)已添加pd集群里面。
滾動升級整個集群(耗時很長,按照我的機(jī)器配置添加一個節(jié)點(diǎn),需要10分鐘左右):
ansible-playbookrolling_update.yml
啟動監(jiān)控服務(wù):
ansible-playbookstart.yml -l 192.168.37.133
更新 Prometheus 配置并重啟:
ansible-playbookrolling_update_monitor.yml --tags=prometheus
打開瀏覽器訪問監(jiān)控平臺:http://192.168.37.132:3000,監(jiān)控整個集群和新增節(jié)點(diǎn)的狀態(tài)
從監(jiān)控面班可以看到,pd已擴(kuò)容成功。
1、縮容tidb
移除tidb節(jié)點(diǎn)(192.168.37.131)
停止節(jié)點(diǎn)上的服務(wù)
ansible-playbookstop.yml -l 192.168.37.131
編輯 inventory.ini 文件,移除節(jié)點(diǎn)信息(這兩個位置)
更新 Prometheus 配置并重啟:
ansible-playbookrolling_update_monitor.yml --tags=prometheus
打開瀏覽器訪問監(jiān)控平臺:http://192.168.37.132:3000,監(jiān)控整個集群和新增節(jié)點(diǎn)的狀態(tài)
192.168.37.131節(jié)點(diǎn)信息已沒有了,縮容成功。
2、縮容tikv
縮容tikv(192.168.37.131)
使用 pd-ctl 從集群中移除節(jié)點(diǎn)
A1:查看192.168.37.131節(jié)點(diǎn)的store id
/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d store (通過pdip接口)
A2:從集群中移除192.168.37.131節(jié)點(diǎn)
/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d store delete 1
使用 Grafana 或者 pd-ctl 檢查節(jié)點(diǎn)是否下線成功
/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d store delete 1
下線成功后,停止節(jié)點(diǎn)(192.168.37.131)上的服務(wù)
ansible-playbookstop.yml -l 192.168.37.131
編輯 inventory.ini 文件,移除節(jié)點(diǎn)信息
注釋掉要縮容的tikv節(jié)點(diǎn)
更新 Prometheus 配置并重啟
ansible-playbookrolling_update_monitor.yml --tags=prometheus
打開瀏覽器訪問監(jiān)控平臺:http://192.168.37.132:3000,監(jiān)控整個集群和新增節(jié)點(diǎn)的狀態(tài)
查看監(jiān)控列表發(fā)現(xiàn)192.168.37.131已縮容。
3、縮容pd
縮容pd(192.168.37.133)
使用 pd-ctl 從集群中移除節(jié)點(diǎn)
A1:查看node2 節(jié)點(diǎn)的name
/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d member
A2:從集群中移除node2,假如name 為pd2
/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d member delete namepd_ti5
使用 pd-ctl 檢查節(jié)點(diǎn)是否下線成功(PD 下線會很快,結(jié)果中沒有192.168.37.133節(jié)點(diǎn)信息即為下線成功)
/home/tidb/tidb-ansible/resources/bin/pd-ctl -u"http://192.168.37.132:2379" -d member
下線成功后,停止192.168.37.133上的服務(wù)
ansible-playbook stop.yml -l 192.168.37.133
編輯 inventory.ini 文件,移除節(jié)點(diǎn)信息
把192.168.37.133注釋掉
滾動升級整個集群
ansible-playbookrolling_update.yml
更新 Prometheus 配置并重啟
ansible-playbookrolling_update_monitor.yml --tags=prometheus
打開瀏覽器訪問監(jiān)控平臺:http://192.168.37.132:3000,監(jiān)控整個集群和新增節(jié)點(diǎn)的狀態(tài)
192.168.37.133的PD已縮容。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130143.html
摘要:臨近年中,銀行重要系統(tǒng)的建設(shè)進(jìn)入投產(chǎn)沖刺階段,本次上線又有多個系統(tǒng)對接,為了優(yōu)化集群資源分配,引發(fā)了這次分享的主題線上系統(tǒng)的縮容的遷移,本文主要針對本次的縮容遷移過程進(jìn)行梳理總結(jié)。 作者:Dan本文轉(zhuǎn)載自公眾號「白噪聲OG」。 經(jīng)歷了上禮拜漫長的上線周期,終于有時間總結(jié)一下期間發(fā)生的故事。TiDB 是一款非常優(yōu)秀的國產(chǎn)分布式 NewSQL 數(shù)據(jù)庫,因其支持水平擴(kuò)展性、強(qiáng)一致性、高可用性...
摘要:作為一個開源的分布式數(shù)據(jù)庫產(chǎn)品,具有多副本強(qiáng)一致性的同時能夠根據(jù)業(yè)務(wù)需求非常方便的進(jìn)行彈性伸縮,并且擴(kuò)縮容期間對上層業(yè)務(wù)無感知。另外本身維護(hù)了數(shù)據(jù)多副本,這點(diǎn)和分布式文件系統(tǒng)的多副本是有重復(fù)的。 作者:鄧栓來源:細(xì)說云計算 作為一款定位在 Cloud-native 的數(shù)據(jù)庫,現(xiàn)如今 TiDB 在云整合上已取得了階段性的進(jìn)展。日前 Cloud TiDB 產(chǎn)品在 UCloud 平臺正式開啟...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20