《一文讲透》第1期:KWDB 单点安装部署

文摘   2024-09-12 18:20   上海  



Hi,各位开发者伙伴:

为帮助大家少走弯路,轻松上手 KWDB(KaiwuDB 社区版) ,我们的《一文讲透》专栏正式营业啦!每一篇都会为大家分享超详细实用的数据库操作步骤与实战演练!


KWDB 是一款面向 AIoT 场景的分布式多模数据库产品,支持在同一实例同时建立时序库和关系库并融合处理多模数据,具备千万级设备接入、百万级数据秒级写入、亿级数据秒级读取等时序数据高效处理能力。


大家可以放心地使用 KWDB 来解决在物联网、能源电力、车联网、智慧政务等各类场景下遇到的数据处理难题。有遇到问题都可以在文末扫码联系小K 为你解答!🙆


今天,我们将围绕以下2部分内容,与大家一起完成 KWDB 的安装部署:

✅单点裸机部署
✅单点容器部署 (分别使用安装脚本和 YAML 文件

开始前一定记得先下载安装包哦 https://gitee.com/kwdb/kwdb/releases),我们的 Gitee 仓库地址( https://gitee.com/kwdb/kwdb 


单节点裸机部署



一、前提准备


1、硬件


如下为部署 KWDB 所需的硬件规格:


项目要求
CPU 和内存建议不低于 4 核 8G。
磁盘- 推荐使用 SSD 或者 NVMe 设备,尽量避免使用 NFS、CIFS、CEPH 等共享存储。
- 磁盘必须能够实现 500 IOPS 和 30 MB/s 处理效率。
文件系统建议使用 ext4 文件系统。

✔️Tip:实际部署时,用户可以根据实际的业务规模和性能要求规划硬件资源。



2、操作系统


KWDB 支持在以下服务器操作系统进行安装部署。


操作系统版本架构
UbuntuV20.04ARM_64
V20.04x86_64
V22.04x86_64
KylinOSV10x86_64
V10ARM_64
UOSV20x86_64

✔️Tip:如使用上述未提及的操作系统,可能会存在问题,可及时与我们联系解决。


3、软件依赖


安装时,KWDB 会对依赖进行检查。如果缺少依赖会退出安装并提示依赖缺失。如果目标机器不能联网,用户需要在能联网的机器上根据目标机器的操作系统下载好所有依赖文件,然后将依赖文件复制到目标机器上进行安装。


不同操作系统及安装包的依赖略有不同,请根据实际安装包类型及操作系统,在部署前安装好相应的依赖。下表列出需要在目标机器安装的依赖:


依赖版本说明
OpenSSLv1.1.1+N/A
Protobufv3.5.0+N/A
GEOSv3.3.8+可选依赖
xz-libsv5.2.0+N/A
squashfs-toolsanyN/A
libgccv7.3.0+N/A
mountanyN/A
squashfuseany可选依赖


4、端口要求


下表列出 KWDB 服务需要映射的端口。在安装部署前,确保目标机器的以下端口没有被占用且没有被防火墙拦截。在安装部署时,用户可以修改 deploy.cfg 文件中的端口配置参数。


端口号说明
8080数据库 Web 服务端口
26257数据库服务端口、节点监听端口和对外连接端口


5、安装包处理


获取系统环境对应的 DEB 或 RPM 安装包(https://gitee.com/kwdb/kwdb/releases/tag/V2.0.3.2),将安装包复制到待安装 KWDB 的目标机器上,然后解压缩安装包:


tar -zxvf <package_name>


解压后生成的目录包含以下文件:


文件说明
add_user.sh安装、启动 KWDB 后,为 KWDB 数据库创建用户。
deploy.cfg安装部署配置文件,用于配置部署节点的 IP 地址、端口等配置信息。
deploy.sh安装部署脚本,用于安装、卸载、启动、状态获取、关停和重启等操作。
packages 目录存放 DEB、RPM 和镜像包。
utils 目录存放工具类脚本。
monitoring 目录存放 Prometheus 配置文件、Grafana Dashboard 模板等文件。



二、开始部署


部署 KWDB 时,系统首先将对配置文件、运行环境、硬件配置和软件依赖进行检查:


  • 如果相应硬件未能满足要求,系统将继续安装,并提示硬件规格不满足要求;

  • 如果软件依赖未能满足要求,系统将中止安装,并提供相应的提示信息。


在部署过程中,系统会自动生成相关日志。如果部署时出现错误,用户可以通过查看终端输出或 KWDB 安装目录中 log 目录里的日志文件,获取详细的错误信息。


部署完成后,系统会将 KWDB 封装成系统服务(名称为 kaiwudb),并生成以下文件:


  • kaiwudb.service:配置 KWDB 的 CPU 资源占用率;

  • kaiwudb.service:配置 KWDB 启动参数。


✔️ 总结在部署前,首先要先确定:


  • 待部署节点的硬件、操作系统、软件依赖和端口满足安装部署要求;

  • 安装用户为 root 用户或者拥有 sudo 权限的普通用户。



详细部署步骤如下👀


👉(1)登录待部署节点,编辑安装包目录下的 deploy.cfg 配置文件,设置安全模式、管理用户、服务端口等信息。


默认情况下,deploy.cfg 配置文件中包含集群配置参数,需删除或注释 [cluster] 集群配置项。


配置文件示例:


[global]secure_mode=ymanagement_user=kaiwudbrest_port=8080kaiwudb_port=26257data_root=/var/lib/kaiwudbcpu=1[local]node_addr=192.168.64.128
# [cluster]# node_addr=192.168.64.129, 192.168.64.130# ssh_port=22# ssh_user=admin


相应参数说明:


  • global:全局配置

    • secure_mode:是否开启安全模式,默认开启安全模式。开启安全模式后,KWDB 生成 TLS 安全证书,作为客户端或应用程序连接数据库的凭证。生成的客户端相关证书存放在 /etc/kaiwudb/certs 目录;

    • management_user:KWDB 的管理用户,默认为 kaiwudb。安装部署后,KWDB 创建相应的管理用户以及和管理用户同名的用户组;

    • rest_port:KWDB Web 服务端口,默认为 8080;

    • kaiwudb_port:KWDB 服务端口,默认为 26257;

    • data_root:数据目录,默认为 /var/lib/kaiwudb;

    • cpu: 可选参数,用于指定 KWDB 服务占用当前节点服务器 CPU 资源的比例,默认无限制。取值范围为 [0,1],最大精度为小数点后两位。


  • local:本地节点配置

    • node_addr:本地节点对外提供服务的 IP 地址,监听地址为 0.0.0.0,端口为 KWDB 服务端口。


👉(2)为 deploy.sh 脚本添加运行权限。

chmod +x ./deploy.sh


👉(3)执行单机部署安装命令。

./deploy.sh install --single

执行成功后,控制台输出以下信息:

INSTALL COMPLETED: KaiwuDB has been installed successfuly! ...


👉(4)启动 KWDB 节点。

./deploy.sh start

执行成功后,控制台输出以下信息:

START COMPLETED: KaiwuDB has started successfuly! ...

✔️Tip:在 KylinOS 操作系统中,系统可能会提示输入用户密码。此时,无需输入密码,直接按回车键确认即可。 


👉(5)查看 KWDB 节点状态。

./deploy.sh status

或者

systemctl status kaiwudb


👉(6)配置 KWDB 开机自启动。

配置 KWDB 开机自启动后,如果系统重启,则自动启动 KWDB。

systemctl enable kaiwudb



单节点容器部署



一、前提准备


1、硬件


如下为部署 KWDB 所需的硬件规格:


项目要求
CPU 和内存建议不低于 4 核 8G。
磁盘- 推荐使用 SSD 或者 NVME 设备,尽量避免使用 NFS、CIFS、CEPH 等共享存储。
- 磁盘必须能够实现 500 IOPS 和 30 MB/s 处理效率。
文件系统建议使用 ext4 文件系统。

✔️Tip:实际部署时,用户可以根据实际的业务规模和性能要求规划硬件资源。


2、操作系统


操作系统需要先安装 Docker,详细信息可参见 Docker 安装文档(https://docs.docker.com/engine/install/binaries/)和安装后说明(https://docs.docker.com/engine/install/linux-postinstall/


KWDB 容器镜像支持在以下已安装 Docker 的操作系统中进行安装部署。


操作系统版本架构
UbuntuV20.04ARM_64
V20.04x86_64
V22.04x86_64
V22.04ARM_64
KylinOSV10x86_64
V10ARM_64
DebianV11ARM_64
UOSV20x86_64
CentOS7x86_64
8x86_64
openEuler22.03x86_64


3、软件依赖


目标机器已安装 Docker Compose(1.20.0 及以上版本)。在线安装 Docker Compose,可参见 Docker 官方文档(https://docs.docker.com/compose/install/

sudo apt-get install docker-compose


4、端口要求


下表列出 KWDB 服务需要映射的端口。在安装部署前,确保目标机器的以下端口没有被占用且没有被防火墙拦截。在安装部署时,用户可以修改 deploy.cfg 文件中的端口配置参数。

端口号说明
8080数据库 Web 服务端口
26257数据库服务端口、节点监听端口和对外连接端口


5、安装包处理


获取系统环境对应的安装包(可文末添加小K 微信获取哦),将安装包复制到待安装 KWDB 的目标机器上,然后解压缩安装包:


tar -zxvf <install_package_name>


解压后生成的目录包含以下文件


文件说明
add_user.sh安装、启动 KWDB 后,为 KWDB 数据库创建用户。
deploy.cfg安装部署配置文件,用于配置部署节点的 IP 地址、端口等配置信息。
deploy.sh安装部署脚本,用于安装、卸载、启动、状态获取、关停和重启等操作。
packages 目录存放 DEB、RPM 和镜像包。
utils 目录存放工具类脚本。




二、开始部署


部署 KWDB 时,系统首先将对配置文件、运行环境、硬件配置和软件依赖进行检查:


  • 如果相应硬件未能满足要求,系统将继续安装,并提示硬件规格不满足要求;

  • 如果软件依赖未能满足要求,系统将中止安装,并提供相应的提示信息。


在部署过程中,系统会自动生成相关日志。如果部署时出现错误,用户可以通过查看终端输出或 KWDB 安装目录中 log 目录里的日志文件,获取详细的错误信息。


部署完成后,系统生成 /etc/kaiwudb/ 目录。Docker Compose 配置文件 docker-compose.yml 位于 /etc/kaiwudb/script 目录下。


部署完成后,用户可以修改 Docker Compose 配置文件 docker-compose.yml,配置 KWDB 的启动参数和 CPU 资源占用率。


有关定制化部署配置的详细信息,参见配置集群(https://gitee.com/kwdb/docs/blob/2.0/deployment/docker/cluster-config-docker.md)。


我们支持使用安装脚本YAML(.yml)文件两种方式部署 KWDB。安装脚本部署支持安全模式和非安全模式。 使用 YAML(.yml)文件进行部署时,仅支持非安全模式,登录 KWDB 数据库时需使用非安全连接模式。


✔️总结在部署前,首先要先确定:


  • 待部署节点的硬件、操作系统、软件依赖和端口满足安装部署要求;
  • 安装用户为 root 用户或者拥有 sudo 权限的普通用户:root 用户和配置 sudo 免密的普通用户在执行部署脚本时无需输入密码;未配置 sudo 免密的普通用户在执行部署脚本时,需要输入密码进行提权;
  • 安装用户为非 root 用户时,需要通过 sudo usermod -aG docker $USER 命令将用户添加到 docker 组。


使用安装脚本部署 KWDB👀:


👉(1)登录待部署节点,编辑安装包目录下的 deploy.cfg 配置文件,设置安全模式、管理用户、服务端口等信息。


默认情况下,deploy.cfg 配置文件中包含集群配置参数,需删除或注释 [cluster] 集群配置项。


配置文件示例:


[global]
secure_mode=y
management_user=kaiwudb
rest_port=8080
kaiwudb_port=26257
data_root=/var/lib/kaiwudb
cpu=1
[local]
node_addr=192.168.64.128

# [cluster]
# node_addr=192.168.64.129, 192.168.64.130
# ssh_port=22
# ssh_user=admin


相关参数说明:

  • global:全局配置

    • secure_mode:是否开启安全模式,默认开启安全模式。开启安全模式后,KWDB 生成 TLS 安全证书,作为客户端或应用程序连接数据库的凭证。生成的客户端相关证书存放在 /etc/kaiwudb/certs 目录;

    • management_user:KWDB 的管理用户,默认为 kaiwudb。安装部署后,KWDB 创建相应的管理用户以及和管理用户同名的用户组;

    • rest_port:KWDB Web 服务端口,默认为 8080;

    • kaiwudb_port:KWDB 服务端口,默认为 26257;

    • data_root:数据目录,默认为 /var/lib/kaiwudb;

    • cpu: 可选参数,用于指定 KWDB 服务占用当前节点服务器 CPU 资源的比例,默认无限制。取值范围为 [0,1],最大精度为小数点后两位。

  • local:本地节点配置

    • node_addr:本地节点对外提供服务的 IP 地址,监听地址为 0.0.0.0,端口为 KWDB 服务端口。


👉(2)为 deploy.sh 脚本添加运行权限。

chmod +x ./deploy.sh


👉(3)执行单机部署安装命令。

./deploy.sh install --single


👉(4)执行成功后,控制台输出以下信息:

INSTALL COMPLETED: KaiwuDB has been installed successfuly! ...


👉(5)启动 KWDB 节点。

./deploy.sh start

执行成功后,控制台输出以下信息:

START COMPLETED: KaiwuDB has started successfuly! ...


👉(6)查看 KWDB 节点状态。

./deploy.sh status

或者

systemctl status kaiwudb


👉(7)配置 KWDB 开机自启动(可选)

配置 KWDB 开机自启动后,如果系统重启,则自动启动 KWDB。

systemctl enable kaiwudb



使用 YAML 文件部署 KWDB 👀:



👉(1)在 kaiwudb_install/packages 目录下导入 KaiwuDB.tar 文件,获取镜像名称


# docker load < KaiwuDB.tar
Loaded image: "path-to-your-docker-image"


👉(2)创建 docker-compose.yml 配置文件。

配置文件示例:

version: '3.3'
services:
 kaiwudb-container:
   image: "path-to-your-docker-image"
   container_name: kaiwudb-experience
   hostname: kaiwudb-experience
   ports:
     - 8080:8080
     - 26257:26257
   ulimits:
     memlock: -1
   volumes:
     - /dev:/dev
   networks:
     - default
   restart: on-failure
   ipc: shareable
   privileged: true
   environment:
     - LD_LIBRARY_PATH=/kaiwudb/lib
   tty: true
   working_dir: /kaiwudb/bin
   command:
     - /bin/bash
     - -c
     - |
       /kaiwudb/bin/kwbase start-single-node --insecure --listen-addr=0.0.0.0:26257 --advertise-addr=127.0.0.1:26257 --http-addr=0.0.0.0:8080 --store=/kaiwudb/deploy/kaiwudb

image 参数的取值必须是导入 KaiwuDB.tar 文件后获取的镜像名称。


👉(3)运行以下命令,快速启动 KWDB。


docker-compose up -d


👉(4)配置 KWDB 开机自启动(可选)


配置 KWDB 开机自启动后,如果系统重启,则自动启动 KWDB。


systemctl enable kaiwudb


以上就是本期的安装部署教程,你学“废”了么!点击关注,下一期想和大家一起实现 KWDB 的快速访问





往期推荐:





官宣:KaiwuDB 开源啦!


KaiwuDB 魏可伟:用“多模”实现对行业的“One size best fits”


KaiwuDB 2.0:以新“融合”架构拥抱物联网









点击解锁“KWDB”!




KaiwuDB
KaiwuDB 是浪潮控股的数据库企业,面向工业物联网、数字能源、车联网、智慧产业等各大行业领域,提供稳定安全、高性能、易运维的创新数据软件与服务,一站式满足 AIoT 等场景下数据管理需求及关键行业核心系统的自主可控需求
 最新文章