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