架构:
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/bash
sshuser=‘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: 22
deploy_dir: "/data/tidb-deploy"
data_dir: "/data/tidb-data"
arch: "amd64"
monitored:
node_exporter_port: 9100
blackbox_exporter_port: 9115
server_configs:
pd:
replication.location-labels: ["zone","dc","rack","host"]
tidb_servers:
- host: 1x2.2x.2x7.124
deploy_dir: "/data/tidb-deploy/tidb-4000"
log_dir: "/data/tidb-deploy/tidb-4000/log"
- host: 1x2.2x.2x7.148
deploy_dir: "/data/tidb-deploy/tidb-4000"
log_dir: "/data/tidb-deploy/tidb-4000/log"
- host: 1x2.2x.2x7.87
deploy_dir: "/data/tidb-deploy/tidb-4000"
log_dir: "/data/tidb-deploy/tidb-4000/log"
pd_servers:
- host: 1x2.2x.2x7.143
deploy_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.132
deploy_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.91
deploy_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.93
config:
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.127
config:
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.104
config:
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.143
deploy_dir: "/data/tidb-deploy/grafana-3000"
alertmanager_servers:
- host: 1x2.2x.2x7.143
deploy_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.143
deploy_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登陆界面