架構:
tidb–3臺,pd–3臺,tikv–3臺
8c16g200g
1x2.2x.2x7.124
1x2.2x.2x7.148
1x2.2x.2x7.87
1x2.2x.2x7.93
1x2.2x.2x7.127
1x2.2x.2x7.104
pd-3臺
4c8g100g
1x2.2x.2x7.143
1x2.2x.2x7.132
1x2.2x.2x7.91
1、下載安裝包 #注:我這里是我內部有一個文件共享站,包裝包你可以 去官方網站下載。
tiup
wget http://1x2.1x.x.180:61/cxh/tidb-community-server-v7.5.2-linux-amd64.tar.gz
tidb工具包
wget http://1x2.1x.x.180:61/cxh/tidb-community-toolkit-v7.5.2-linux-amd64.tar.gz
2、安裝
1) 配置ssh互信(這里提供一個腳本全自動幫你完成)
cat host_id_rsa.sh
#!/bin/bashsshuser=‘root’
sshpassword=‘xxxxxxl’
rsa_count=‘id_rsa_count.pub’
ips=‘1x2.2x.2x7.124 1x2.2x.2x7.148 1x2.2x.2x7.87 1x2.2x.2x7.93 1x2.2x.2x7.127 1x2.2x.2x7.104 1x2.2x.2x7.143 1x2.2x.2x7.132 1x2.2x.2x7.91’/usr/bin/which sshpass;if [[ “$?” != “0” ]];then yum -y install sshpass;fi
#安裝sshpass
for ip in $ips ;do
echo ipsshpass?pip sshpass -pipsshpass?p{sshpassword} ssh root@ip?oStrictHostKeyChecking=no′/usr/bin/whichsshpass;if[["{ip} -o StrictHostKeyChecking=no '/usr/bin/which sshpass;if [[ "ip?oStrictHostKeyChecking=no
′/usr/bin/whichsshpass;if[["?" != “0” ]];then yum -y install sshpass ;fi’
done#生成密鑰
for ip in ips;dosshpass?pips ;do sshpass -pips;dosshpass?p{sshpassword} ssh root@${ip} -o StrictHostKeyChecking=no ‘if [ ! -f ~/.ssh/id_rsa ]; then ssh-keygen -t rsa -P “” -f ~/.ssh/id_rsa; fi’
done將公鑰復制到遠程主機
:>$rsa_count
for ip in ips;dosshpass?pips ;do sshpass -pips;dosshpass?p{sshpassword} ssh root@ip?oStrictHostKeyChecking=no′cat/root/.ssh/idrsa.pub′>>{ip} -o StrictHostKeyChecking=no 'cat /root/.ssh/id_rsa.pub' >>ip?oStrictHostKeyChecking=no
′cat/root/.ssh/id
r
?sa.pub
′>>rsa_count
done#把密鑰匯總拷貝到所有機器
for ip in ips;dosshpass?pips ;do sshpass -pips;dosshpass?p{sshpassword} scp rsacountroot@{rsa_count} root@rsa
c
?ountroot@{ip}:/root/authorized_keys
sshpass -psshpasswordsshroot@{sshpassword} ssh root@sshpasswordsshroot@{ip} -o StrictHostKeyChecking=no ‘mv /root/authorized_keys /root/.ssh/authorized_keys’
done#觸發
for ip in ips;dosshpass?pips ;do sshpass -pips;dosshpass?p{sshpassword} ssh root@${ip} -o StrictHostKeyChecking=no “for iph in ips;dosshpass?pips ;do sshpass -pips;dosshpass?p{sshpassword} ssh root@$iph -o StrictHostKeyChecking=no ‘ip a|grep 172’ ;done”
done
在其中一臺機器上跑密鑰互信腳本 就行,例如在這臺上 1x2.2x.2x7.124
sh host_id_rsa.sh
2)在機器1x2.2x.2x7.124中繼續操作,解壓tidb安裝包和工具包
cp /opt
tar xvf tidb-community-server-v7.5.2-linux-amd64.tar.gz
tar xvf tidb-community-toolkit-v7.5.2-linux-amd64.tar.gz
安裝tiup
cd tidb-community-server-v7.5.2-linux-amd64
sh local_install.sh
刷新環境變量
source /root/.bash_profile
執行tiup查看是否成功
tiup
通過tiup部署TiDB集群
生成配置文件模板
tiup cluster template > topology_test.yaml #這個是模板
修改配置文件,以下是我這邊環境配置文件 ,你們可以根據自己的實際環境修改對應iP
cat topology_test.yaml
global:user: "tidb"ssh_port: 22deploy_dir: "/data/tidb-deploy"data_dir: "/data/tidb-data"arch: "amd64"
monitored:node_exporter_port: 9100blackbox_exporter_port: 9115
server_configs:pd:replication.location-labels: ["zone","dc","rack","host"]
tidb_servers:- host: 1x2.2x.2x7.124deploy_dir: "/data/tidb-deploy/tidb-4000"log_dir: "/data/tidb-deploy/tidb-4000/log"- host: 1x2.2x.2x7.148deploy_dir: "/data/tidb-deploy/tidb-4000"log_dir: "/data/tidb-deploy/tidb-4000/log"- host: 1x2.2x.2x7.87deploy_dir: "/data/tidb-deploy/tidb-4000"log_dir: "/data/tidb-deploy/tidb-4000/log"
pd_servers:- host: 1x2.2x.2x7.143deploy_dir: "/data/tidb-deploy/pd-2379"data_dir: "/data/tidb-data/pd-2379"log_dir: "/data/tidb-deploy/pd-2379/log"- host: 1x2.2x.2x7.132deploy_dir: "/data/tidb-deploy/pd-2379"data_dir: "/data/tidb-data/pd-2379"log_dir: "/data/tidb-deploy/pd-2379/log"- host: 1x2.2x.2x7.91deploy_dir: "/data/tidb-deploy/pd-2379"data_dir: "/data/tidb-data/pd-2379"log_dir: "/data/tidb-deploy/pd-2379/log"
tikv_servers:- host: 1x2.2x.2x7.93config:server.labels: { zone: "z1", dc: "d1", rack: "r1", host: "243179" }deploy_dir: "/data/tidb-deploy/tikv-20160"data_dir: "/data/tidb-data/tikv-20160"log_dir: "/data/tidb-deploy/tikv-20160/log"- host: 1x2.2x.2x7.127config:server.labels: { zone: "z1", dc: "d1", rack: "r1", host: "24373" }deploy_dir: "/data/tidb-deploy/tikv-20160"data_dir: "/data/tidb-data/tikv-20160"log_dir: "/data/tidb-deploy/tikv-20160/log"- host: 1x2.2x.2x7.104config:server.labels: { zone: "z1", dc: "d1", rack: "r1", host: "24393" }deploy_dir: "/data/tidb-deploy/tikv-20160"data_dir: "/data/tidb-data/tikv-20160"log_dir: "/data/tidb-deploy/tikv-20160/log"
grafana_servers:- host: 1x2.2x.2x7.143deploy_dir: "/data/tidb-deploy/grafana-3000"
alertmanager_servers:- host: 1x2.2x.2x7.143deploy_dir: "/data/tidb-deploy/alertmanager-9093"data_dir: "/data/tidb-data/alertmanager-9093"log_dir: "/data/tidb-deploy/alertmanager-9093/log"
monitoring_servers:- host: 1x2.2x.2x7.143deploy_dir: "/data/tidb-deploy/prometheus-8249"data_dir: "/data/tidb-data/prometheus-8249"log_dir: "/data/tidb-deploy/prometheus-8249/log"
根據配置文件做部署環境檢查
tiup cluster check ./topology_test.yaml --user root
如出現報錯
檢查完成后可能會出現很多修復項
#自動修復
tiup cluster check ./topology_test.yaml --apply
再次檢查部署環境
tiup cluster check ./topology_test.yaml --user root
#(沒有numactl可以忽略):Fail numactl not usable, bash:numactl:command not found
部署tidb集群執行命令如下:
tiup cluster deploy tidb-public-dev-0001 v7.5.2 ./topology_test.yaml
啟動tidb集群執行命令
tiup cluster start tidb-public-dev-0001 ##這里我們不加–init選項,這樣就不會生成一個隨機密碼
查看集群狀態
#查看集群名稱
tiup cluster list
#查看集群狀態信息
tiup cluster display 集群名
Dashboard登陸界面