kwbase CLI 部署
本节介绍如何通过 kwbase CLI 命令在单台机器上部署 KWDB 集群,包括启动多个节点并初始化集群的完整过程。注意:在实际生产环境中,建议每台机器仅部署一个节点,以提升可用性并降低数据丢失风险。
前提条件
步骤
进入
kwbase
脚本所在目录:cd /home/go/src/gitee.com/kwbasedb/install/bin
(可选)如需采用安全模式,执行以下步骤创建证书:
创建证书存放目录:
mkdir -p <certs_dir>
生成证书和密钥:
# 创建数据库证书颁发机构及密钥 ./kwbase cert create-ca --certs-dir=<certs_dir> --ca-key=<certs_dir>/ca.key # 创建安装数据库用户的客户端证书及密钥 ./kwbase cert create-client <username> --certs-dir=<certs_dir> --ca-key=<certs_dir>/ca.key # 创建节点服务器证书及密钥 ./kwbase cert create-node 127.0.0.1 localhost 0.0.0.0 --certs-dir=<certs_dir> --ca-key=<certs_dir>/ca.key
提示
如果采用跨机器安全模式部署,需要使用
./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
安全模式:
# 启动第一个节点 ./kwbase start-single-replica \ --certs-dir=<certs_dir> \ --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=<certs_dir> \ --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=<certs_dir> \ --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
多副本集群:
非安全模式:
# 启动第一个节点 ./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
安全模式:
# 启动第一个节点 ./kwbase start \ --certs-dir=<certs_dir> \ --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=<certs_dir> \ --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=<certs_dir> \ --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
初始化集群。
非安全模式:
./kwbase init --insecure --host=<address_of_any_node>
安全模式:
./kwbase init --certs-dir=<certs_dir> --host=<address_of_any_node>
查看集群状态。
非安全模式:
./kwbase node status --insecure --host=<address_of_any_alive_node>
安全模式:
./kwbase node status --certs-dir=<certs_dir> --host=<address_of_any_alive_node>