扩容 TiDB/TiKV 节点
例如,如果要添加两个 TiDB 节点(TiDB1,TiDB2),IP 地址为 172.16.30.90、172.16.30.91,
编辑
inventory.ini文件,添加节点信息:[tidb_servers] TiDB ansible_host=172.16.30.86 deploy_dir=/data/tidb/deploy_tidb/tidb tidb_port=5000 tidb_status_port=10086 pump_port=8258 labels="host=ip-172-16-30-86" TiDB1 ansible_host=172.16.30.90 deploy_dir=/data/tidb/deploy_tidb/tidb tidb_port=5000 tidb_status_port=10086 pump_port=8258 labels="host=ip-172-16-30-90" TiDB2 ansible_host=172.16.30.91 deploy_dir=/data/tidb/deploy_tidb/tidb2 tidb_port=5000 tidb_status_port=10086 pump_port=8258 labels="host=ip-172-16-30-91"初始化新增节点:
ansible-playbook bootstrap.yml -l TiDB1,TiDB2注: 如果
inventory.ini中为节点配置了别名,如node101 ansible_host=172.16.10.101,执行 ansible-playbook 时 -l 请指定别名,以下步骤类似。例如:ansible-playbook bootstrap.yml -l node101,node10部署新增节点:
ansible-playbook deploy.yml -l -l TiDB1,TiDB2启动新节点服务:
ansible-playbook start.yml -l -l TiDB1,TiDB2更新 Prometheus 配置并重启:
ansible-playbook rolling_update_monitor.yml --tags=prometheus打开浏览器访问监控平台:`http://172.16.10.3:3000,监控整个集群和新增节点的状态。
可使用同样的步骤添加 TiKV 节点。但如果要添加 PD 节点,则需手动更新一些配置文件。
扩容 PD 节点
例如,如果要添加一个 PD 节点(PD04),IP 地址为 172.16.30.92,可以进行如下操作:
编辑
inventory.ini文件,添加节点信息置于[pd_servers]主机组最后一行初始化新增节点:
ansible-playbook bootstrap.yml -l PD04部署新增节点:
ansible-playbook deploy.yml -l PD04登录新增的 PD 节点,编辑启动脚本:
{deploy_dir}/scripts/run_pd.sh移除
--initial-cluster="xxxx" /配置,注意这里不能在行开头加注释符 #。添加
--join="http://172.16.30.92:2379" /,IP 地址 (172.16.10.1) 可以是集群内现有 PD IP 地址中的任意一个。在新增 PD 节点中手动启动 PD 服务:
{deploy_dir}/scripts/start_pd.sh使用
pd-ctl检查新节点是否添加成功:/home/tidb/tidb-ansible/resources/bin/pd-ctl -u "http://172.16.10.1:2379" -d member
滚动升级整个集群:
ansible-playbook rolling_update.yml更新 Prometheus 配置并重启:
ansible-playbook rolling_update_monitor.yml --tags=prometheus打开浏览器访问监控平台:
http://172.16.10.3:3000,监控整个集群和新增节点的状态。
缩容 TiDB 节点
例如,如果要移除一个 TiDB 节点(node5),IP 地址为 172.16.30.90,可以进行如下操作:
停止 node5 节点上的服务:
ansible-playbook stop.yml -l TiDB1编辑
inventory.ini文件,移除节点信息:[tidb_servers] #172.16.30.90 # 注释被移除节点 [monitored_servers] #172.16.30.90 # 注释被移除节点更新 Prometheus 配置并重启:
ansible-playbook rolling_update_monitor.yml --tags=prometheus打开浏览器访问监控平台:
http://172.16.10.3:3000,监控整个集群的状态。
缩容 TiKV 节点
例如,如果要移除一个 TiKV 节点(node9),IP 地址为 172.16.30.87,可以进行如下操作:
使用
pd-ctl从集群中移除节点:查看 node9 节点的 store id:
/home/tidb/tidb-ansible/resources/bin/pd-ctl -u "http://172.16.30.86:2379" -d store从集群中移除 node9,假如 store id 为 10:
/home/tidb/tidb-ansible/resources/bin/pd-ctl -u "http://172.16.30.86:2379" -d store delete 10
使用 Grafana 或者
pd-ctl检查节点是否下线成功(下线需要一定时间,下线节点的状态变为 Tombstone 就说明下线成功了):/home/tidb/tidb-ansible/resources/bin/pd-ctl -u "http://172.16.30.86:2379" -d store 10下线成功后,停止 node9 上的服务,-l 参数后要是存在别名则用别名 :
ansible-playbook stop.yml -l 172.16.30.87编辑
inventory.ini文件,移除节点信息:[tikv_servers] #172.16.30.87 # 注释被移除节点 [monitored_servers] #172.16.30.87 # 注释被移除节点更新 Prometheus 配置并重启:
ansible-playbook rolling_update_monitor.yml --tags=prometheus打开浏览器访问监控平台:
http://172.16.10.3:3000,监控整个集群的状态。
缩容 PD 节点
例如,如果要移除一个 PD 节点(node2),IP 地址为 172.16.30.87,可以进行如下操作:
使用
pd-ctl从集群中移除节点:查看 node2 节点的 name:
/home/tidb/tidb-ansible/resources/bin/pd-ctl -u "http://172.16.30.86:2379" -d member从集群中移除 node2,假如 name 为 pd2:
/home/tidb/tidb-ansible/resources/bin/pd-ctl -u "http://172.16.30.86:2379" -d member delete name pd2
使用 Grafana 或者
pd-ctl检查节点是否下线成功(PD 下线会很快,结果中没有 node2 节点信息即为下线成功):/home/tidb/tidb-ansible/resources/bin/pd-ctl -u "http://172.16.10.1:2379" -d member下线成功后,停止 node2 上的服务,-l 参数后要是存在别名则用别名:
ansible-playbook stop.yml -l 172.16.30.87编辑
inventory.ini文件,移除节点信息:[pd_servers] #172.16.30.87 # 注释被移除节点 [monitored_servers] #172.16.30.87 # 注释被移除节点滚动升级整个集群:
ansible-playbook rolling_update.yml更新 Prometheus 配置并重启:
ansible-playbook rolling_update_monitor.yml --tags=prometheus打开浏览器访问监控平台:
http://172.16.10.3:3000,监控整个集群的状态。
版权声明:本文为博主原创文章,未经博主允许不得转载。



