YugabyteDB分布式数据库部署
注:不要在aarch64上面部署,我尝试了一个下午无法成功
一、搭建内网
我推荐 https://github.com/gravitl/netmaker 这个项目,这个项目能够将多个主机连接到一起组成一个内网,并且可以当作代理使用,很方便
二、ufw防火墙
因为服务器是有安全组的,所以我直接使用防火墙对对应的端口进行管理,没有开放的端口直接通过安全组管理
- 我们需要开放的端口如下
- 5433:应用程序连接用的SQL端口(对外)
- 15433:集群监控Web UI端口(对外)
- 7100:节点间内部通信
- 9000:内部指标交换
2.1 重置防火墙:
sudo ufw --force reset
2.2 设置默认策略:允许所有入站,允许所有出站
sudo ufw default allow incoming
sudo ufw default allow outgoing
2.3 允许内网访问内部端口
对每一个节点运行以下代码,允许其他节点访问
sudo ufw allow from <内网ip> to any port 7100
sudo ufw allow from <内网ip> to any port 9000
2.4 拒绝外网访问内部端口(显式拒绝)
sudo ufw deny 7100
sudo ufw deny 9000
2.5 启用并查看状态
sudo ufw enable
sudo ufw status verbose
三、YugabyteDB 安装部署
3.1 下载安装
cd /opt
wget https://software.yugabyte.com/releases/2025.2.0.1/yugabyte-2025.2.0.1-b1-linux-x86_64.tar.gz
tar xvfz yugabyte-2025.2.0.1-b1-linux-x86_64.tar.gz
ln -s yugabyte-2025.2.0.1 yugabyte
cd yugabyte && ./bin/post_install.sh
3.2 环境配置
cat >> /etc/profile << 'EOF'
export YB_HOME=/opt/yugabyte
export PATH=$YB_HOME/bin:$PATH
EOF
source /etc/profile
mkdir -p /data/yugabyte
四、启动集群
4.1 主要节点
./bin/yugabyted start \
--advertise_address=<本机ip> \
--base_dir=/data/yugabyte \
--cloud_location=dc1.rack1.node1 \
--fault_tolerance=zone \
--tserver_flags="ysql_enable_auth=false" \
--master_flags="replication_factor=2"
4.2 从节点
./bin/yugabyted start \
--advertise_address=<本机ip> \
--base_dir=/data/yugabyte \
--cloud_location=dc1.rack1.node2 \
--join=<主机ip> \
--fault_tolerance=zone