裸机部署
KaiwuDB 支持使用 KaiwuDB 二进制安装包部署 KaiwuDB 集群。部署 KaiwuDB 集群时,系统将对配置文件、运行环境、硬件配置、软件依赖和免密登录进行检查。如果相应硬件未能满足要求,系统将继续安装,并提示硬件规格不满足要求。如果软件依赖未能满足要求,系统将中止安装,并提供相应的提示信息。
在部署过程中,系统会自动生成相关日志。如果部署时出现错误,用户可以通过查看终端输出或 KaiwuDB 安装目录中 log
目录里的日志文件,获取详细的错误信息。
部署完成后,系统会将 KaiwuDB 封装成系统服务(名称为 kaiwudb
),并生成以下文件:
kaiwudb.service
:配置 KaiwuDB 的 CPU 资源占用率。kaiwudb_env
:配置 KaiwuDB 启动参数。
有关定制化部署配置的详细信息,参见配置集群。
前提条件
- 待部署节点的硬件、操作系统、软件依赖和端口满足安装部署要求。
- 各节点间网络联通,且已配置当前节点与集群内其他节点的 SSH 免密。
- 当前节点与集群内所有节点的时钟相差不大于 500 ms。
- 安装用户为 root 用户或者拥有
sudo
权限的普通用户。- root 用户和配置
sudo
免密的普通用户在执行部署脚本时无需输入密码。 - 未配置
sudo
免密的普通用户在执行部署脚本时,需要输入密码进行提权。
- root 用户和配置
部署步骤
登录待部署节点,编辑安装包目录下的
deploy.cfg
配置文件,设置安全模式、管理用户、服务端口等信息,并添加其他节点信息。配置文件示例:
[global] secure_mode=y management_user=kaiwudb rest_port=8080 kaiwudb_port=26257 data_root=/var/lib/kaiwudb cpu=1 [local] node_addr=your-host-ip [cluster] node_addr=your-host-ip, your-host-ip ssh_port=22 ssh_user=admin
配置参数说明:
global
:全局配置secure_mode
:是否开启安全模式,默认开启安全模式。开启安全模式后,KaiwuDB 生成 TLS 安全证书,作为客户端或应用程序连接数据库的凭证。生成的客户端相关证书存放在/etc/kaiwudb/certs
目录。management_user
:KaiwuDB 的管理用户,默认为kaiwudb
。安装部署后,KaiwuDB 创建相应的管理用户以及和管理用户同名的用户组。rest_port
:KaiwuDB Web 服务端口,默认为8080
。kaiwudb_port
:KaiwuDB 服务端口,默认为26257
。data_root
:数据目录,默认为/var/lib/kaiwudb
。cpu
: 可选参数,用于指定 KaiwuDB 服务占用当前节点服务器 CPU 资源的比例,默认无限制。取值范围为[0,1]
,最大精度为小数点后两位。KaiwuDB 支持调整 CPU 资源占用率。更多信息,参见配置集群。
local
:本地节点配置node_addr
:本地节点对外提供服务的 IP 地址,监听地址为0.0.0.0
,端口为 KaiwuDB 服务端口。
cluster
:集群内其他节点的配置node_addr
:远程节点对外提供服务的 IP 地址。各节点的 IP 地址使用逗号(,
)分割。ssh_port
:远程节点的 SSH 服务端口。各节点的 SSH 服务端口必须相同。ssh_user
:远程节点的 SSH 登录用户。各节点的 SSH 登录用户必须相同。
为
deploy.sh
脚本增加运行权限。chmod +x ./deploy.sh
执行安装命令。
./deploy.sh install --multi-replica
执行成功后,控制台输出以下信息:
INSTALL COMPLETED: KaiwuDB has been installed successfuly! ...
初始化并启动集群。
提示
集群初始化和启动大约需要 10 秒左右时间。在此期间,如果有节点死亡,可能会导致集群无法触发高可用机制。
./deploy.sh cluster -i
或者
./deploy.sh cluster --init
查看集群节点状态。
./deploy.sh cluster -s
或者
./deploy.sh cluster --status
执行成功后,控制台输出以下信息:
id | address | sql_address | build | started_at | updated_at | locality | start_mode | is_available | is_live | status -----+---------------------+---------------------+-------+---------------------------------+----------------------------------+----------+-------------------+--------------+----------+------- 1 | 10.110.10.153:26257 | 10.110.10.153:26257 | 2.0.3 | 2024-01-31 08:07:54.76191+00:00 | 2024-02-02 06:22:09.792831+00:00 | | start-single-node | true | true | healthy (1 row)
返回字段说明:
字段 描述 id
节点 ID。 address
节点地址。 sql_address
SQL 地址。 build
节点的 KaiwuDB 版本 started_at
节点启动的日期和时间。 updated_at
节点更新命令结果的日期和时间。节点正常时,每 10 秒左右记录一次新状态。节点不正常时,此命令的统计信息可能会较旧。 locality
节点机器的地理位置,例如国家、数据中心或机架等。用户需要在启动节点指定节点机器的地理位置。 start_mode
节点启动模式。 is_available
如果为 true
,当前节点可用。is_live
如果为 true
,当前节点处于活跃状态。status
当前节点的状态。 (可选)配置 KaiwuDB 开机自启动。
配置 KaiwuDB 开机自启动后,如果系统重启,则自动启动 KaiwuDB。
systemctl enable kaiwudb