kwbase CLI 部署
本节介绍如何通过 kwbase CLI 命令在单台机器上部署 KaiwuDB 集群。注意:在实际生产环境中,建议每台机器仅部署一个节点,以提升可用性并降低数据丢失风险。
前提条件
- 待部署节点的硬件配置、操作系统、软件依赖和端口满足安装部署要求
- 安装用户为
root
用户或拥有sudo
权限的普通用户
步骤
登录待部署节点,进入安装包目录下的
packages
目录。安装依赖包和服务器组件。
DEB 包系统(Debian/Ubuntu):
dpkg -i ./kaiwudb-libcommon-<版本号>.deb ./kaiwudb-server-<版本号>.deb
RPM 包系统(CentOS/RHEL):
rpm -ivh ./kaiwudb-libcommon-<版本号>.rpm ./kaiwudb-server-<版本号>.rpm
切换至程序目录:
cd /usr/local/kaiwudb/bin
(可选)如需采用安全部署模式,执行以下步骤创建证书:
创建证书存放目录:
mkdir -p /usr/local/kaiwudb/certs
生成证书和密钥:
TLS 安全模式:
# 创建数据库证书颁发机构及密钥 ./kwbase cert create-ca --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key && \ # 创建安装数据库用户的客户端证书及密钥(USER_NAME 替换为实际用户名) ./kwbase cert create-client $USERNAME --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key && \ # 创建节点服务器证书及密钥 ./kwbase cert create-node 127.0.0.1 localhost 0.0.0.0 --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key
TLCP 安全模式:
# 创建数据库证书颁发机构及密钥 ./kwbase cert create-ca --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key --tlcp && \ # 创建安装数据库用户的客户端证书及密钥(USER_NAME 替换为实际用户名) ./kwbase cert create-client $USERNAME --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key --tlcp && \ # 创建节点服务器证书及密钥 ./kwbase cert create-node 127.0.0.1 localhost 0.0.0.0 --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key --tlcp
提示
如果采用跨机器安全模式部署,需要使用
./kwbase cert create-node <node_ip>
命令为所有节点创建证书和密钥,并将所有证书和密钥传输至所有节点。
启动数据库:
单副本集群:
非安全模式:
# 启动第一个节点 ./kwbase start-single-replica --insecure \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host1}:26257 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 # 启动第二个节点 ./kwbase start-single-replica --insecure \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host2}:26258 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 # 启动第三个节点 ./kwbase start-single-replica --insecure \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host3}:26259 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257
TLS 安全模式:
# 启动第一个节点 ./kwbase start-single-replica \ --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host1}:26257 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 # 启动第二个节点 ./kwbase start-single-replica \ --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host2}:26258 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 # 启动第三个节点 ./kwbase start-single-replica \ --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host3}:26259 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257
TLCP 安全模式:
# 启动第一个节点 ./kwbase start-single-replica \ --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host1}:26257 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 \ --tlcp # 启动第二个节点 ./kwbase start-single-replica \ --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host2}:26258 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 \ --tlcp # 启动第三个节点 ./kwbase start-single-replica \ --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host3}:26259 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 \ --tlcp
多副本集群:
非安全模式:
# 启动第一个节点 ./kwbase start --insecure \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host1}:26257 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 # 启动第二个节点 ./kwbase start --insecure \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host2}:26258 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 # 启动第三个节点 ./kwbase start --insecure \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host3}:26259 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257
TLS 安全模式:
# 启动第一个节点 ./kwbase start --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host1}:26257 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 # 启动第二个节点 ./kwbase start --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host2}:26258 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 # 启动第三个节点 ./kwbase start --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host3}:26259 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257
TLCP 安全模式:
# 启动第一个节点 ./kwbase start --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host1}:26257 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 \ --tlcp # 启动第二个节点 ./kwbase start --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host2}:26258 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 \ --tlcp # 启动第三个节点 ./kwbase start --certs-dir=/usr/local/kaiwudb/certs \ --listen-addr=0.0.0.0:26257 \ --advertise-addr=${host3}:26259 \ --http-addr=0.0.0.0:8080 \ --store=/var/lib/kaiwudb \ --join=${host1}:26257 \ --tlcp
初始化集群。
非安全模式:
./kwbase init --insecure --host=<address_of_any_node>
TLS 安全模式:
./kwbase init --certs-dir=/usr/local/kaiwudb/certs --host=<address_of_any_node>
TLCP 安全模式:
./kwbase init --certs-dir=/usr/local/kaiwudb/certs --host=<address_of_any_node> --tlcp
查看数据库状态。
非安全模式:
./kwbase node status --insecure --host=<address_of_any_alive_node>
TLS 安全模式:
./kwbase node status --certs-dir=/usr/local/kaiwudb/certs --host=<address_of_any_alive_node>
TLCP 安全模式:
./kwbase node status --certs-dir=/usr/local/kaiwudb/certs --host=<address_of_any_alive_node> --tlcp