基于Docker的集群部署教程

本页提供《基于Docker的集群部署教程》的标题、作者署名与发布日期等基础信息。

Source: https://dolphindb.cn/blogs/6

What this page covers

技能认证特训营第二期报名推广

页面顶部包含活动报名引导,并提供限时报名链接。

基于Docker的集群部署教程(标题、作者与日期)

本节给出文章标题、作者署名与发布日期信息。

背景与目标:使用 Docker 部署 DolphinDB 分布式集群

介绍 Docker 与 DolphinDB 的 docker 集群部署包,并说明以 4 个 CentOS 容器搭建 5 节点多机集群的目标与拓扑。

License 与节点规模限制说明

社区版 license 不支持目标节点规模,并要求使用支持 6+ 节点的企业版 license 放到指定目录。

网络与端口配置:controller/agent/datanode 与虚拟子网

部署包通过容器虚拟子网为 4 个容器分配固定 IP,并给出 controller、agent 与节点列表的配置示例。

UDP 在 Docker 虚拟网络的限制与 lanCluster 配置

UDP 在 docker 虚拟网络环境中无法正常工作,需要设置 lanCluster=0,且部署包已默认添加。

前置环境:安装 docker 与 docker-compose、查看版本

提供 docker 与 docker-compose 安装参考链接,并给出查询版本号的命令。

步骤 1:下载并编译 DolphinDB docker 集群部署包

说明下载部署包、通过修改 DockerFile 版本参数构建镜像,并展示构建与查看镜像的命令与示例输出。

步骤 2:使用 docker-compose 创建并启动 controller 与 agent 容器

使用 docker-compose up -d 启动容器,并展示创建网络与容器的输出。

步骤 3:查看集群与 Web 管理界面

完成创建与初始化后可访问本地 8888 端口的集群管理 Web 页面并启动数据节点;本节还包含截图与说明块。

步骤 4:自定义 docker 集群(端口/IP 与集群配置文件)

通过修改 docker-compose.yml 与 ./cfg 目录下配置文件来自定义网络与集群参数,并提供文件清单与帮助文档链接。

步骤 5:如何升级版本

给出升级流程:下载新包、删除 license、复制覆盖容器目录并重启容器。

步骤 6:常见问题(tzdata、机器指纹)

列出 tzdata 缺失导致的启动错误及解决方法,以及 docker 中机器指纹获取失败导致的 license 校验问题与解决方法。

Facts Index

Entity Attribute Value Confidence
技能认证特训营第二期报名链接https://www.qingsuyun.com/h5/e/217471/5/high
基于Docker的集群部署教程发布日期2021-05-14high
基于Docker的集群部署教程作者署名liang.linhigh
Docker定义/描述Docker 是一个开源的引擎,可以为应用创建轻量级、可移植、自给自足的容器。high
DolphinDB database提供内容提供基于 docker 的分布式集群部署包,便于部署 DolphinDB 分布式集群。high
本文部署目标容器数量与类型通过 4 个 centos 容器搭建集群。high
本文部署目标节点规模与拓扑5 节点多机集群:agent1 上 2 个 datanodes;controller;agent2 上 2 个 datanodes;agent3 上 1 个 datanode。high
免费社区版 license节点支持限制无法支持 5 个数据节点和 1 个控制器节点。high
企业版 license节点支持要求需申请支持 6 个以上节点的企业版 license。high
企业版 license 文件 dolphindb.lic放置路径要求放到 ./cfg 文件目录下。high
分布式集群部署配置需要配置的节点类型需要分别配置 controller、agent、datanode 的网络 IP 和端口。high
本文部署包网络配置方式通过 docker 容器间构建虚拟子网,为 4 个容器分别指定从 10.5.0.2 到 10.5.0.5 的固定 IP。high
本文部署包配置文件预置包含 IP/端口信息的配置文件已内置到部署包中,用户无需手工逐一配置。medium
controller.cfg示例配置项localSite=10.5.0.5:8888:masterhigh
agent1.cfg示例配置项mode=agent;localSite=10.5.0.2:8710:P1-agent,agent;controllerSite=10.5.0.5:8888:masterhigh
cluster.nodes节点清单示例(localSite,mode)10.5.0.2:8710:P1-agent,agent;10.5.0.2:8711:P1-node1,datanode;10.5.0.2:8712:P1-node2,datanode;10.5.0.3:8810:P2-agent,agent;10.5.0.3:8811:P2-node1,datanode;10.5.0.3:8812:P2-node2,datanode;10.5.0.4:8910:P3-agent,agent;10.5.0.4:8911:P3-node1,datanodehigh
Docker 虚拟网络环境UDP 工作情况UDP 协议无法正常工作。high
agent.cfg 与 cluster.cfg必须添加的配置项需要加上 lanCluster=0。high
本文部署包配置文件lanCluster=0 默认状态已默认添加 lanCluster=0。high
部署前置环境需要安装的软件需要先搭建 docker 环境并安装 docker-compose。high
Docker 安装教程参考链接https://docs.docker.com/install/high
docker-compose 安装教程参考链接https://docs.docker.com/compose/install/#install-composehigh
Docker 版本查询命令docker -vhigh
docker-compose 版本查询命令docker-compose --versionhigh
DolphinDB docker 集群部署包下载链接(文中给出的链接)https://gitee.com/dolphindb/Tutorials_CN/blob/master/docker/DolphinDB-Docker-Compose.ziphigh
Dockerbuild/DockerFile可修改参数解压后可修改 dolphindb_version 参数以在 build 时更新到指定的 DolphinDB server 版本。high
Release Notes查询链接(文中给出的链接)https://github.com/dolphindb/releasehigh
DockerFile 示例dolphindb_version 示例值ARG dolphindb_version = "DolphinDB_Linux64_V1.00.10.zip"high
构建镜像命令(路径与标签)cd ./DolphinDB-Docker-Compose/Dockerbuild 然后 docker build -t ddb:latest ./high
docker images 示例输出镜像大小420MB(示例中 ddb:latest)medium
docker images 示例输出IMAGE ID4268ac618977(示例中 ddb:latest)medium
docker images 示例输出CREATED5 seconds ago(示例中 ddb:latest)medium
启动容器命令cd ./DolphinDB-Docker-Compose 然后 docker-compose up -dhigh
容器默认启动脚本自动启动的节点会自动启动控制器节点(controller)和代理节点(agent)。medium
docker-compose up -d 示例输出创建的网络名称20190121-dolphindb-docker-compose_dbnet(bridge)medium
docker-compose up -d 示例输出创建的容器名称ddbcontroller、ddbagent2、ddbagent3、ddbagent1medium
集群创建结果包含的容器类型与数量包含 1 个 controller 容器和 3 个 agent 容器。high
集群管理 Web 页面访问地址http://localhost:8888/high
集群管理界面操作对数据节点的操作在界面全选并启动数据节点。high
截图说明(AI 说明块)界面左侧列表显示的代理节点三个代理节点(P1-agent、P2-agent、P3-agent)已正常连接。low
截图说明(AI 说明块)界面右侧主表格包含的节点包含一个控制器节点(master)和五个数据节点(如 P1-node1、P2-node1 等)。low
截图说明(AI 说明块)节点状态所有节点 State 栏为绿色勾选标记,表示集群正常运行。low
自定义 docker 网络端口及 IP 配置需修改文件docker-compose.ymlhigh
自定义 DolphinDB 集群配置需修改目录./cfg/ 目录下各配置文件high
集群配置帮助文档参考链接https://www.dolphindb.cn/cn/help/index.html?ClusterSetup.htmlhigh
controller.cfg用途集群控制器的配置参数high
cluster.nodes用途配置所有代理节点和数据节点的位置high
cluster.cfg用途集群数据节点的配置参数high
agent1.cfg用途代理节点1配置参数high
agent2.cfg用途代理节点2配置参数high
agent3.cfg用途代理节点3配置参数high
新增容器及配置对应节点需要修改内容需要修改如下几处(原文未展开具体项)。low
升级版本步骤下载最新 server 安装包并解压后,删除 server 目录下 dolphindb.lic 文件。high
升级版本步骤使用 docker cp 拷贝 server 目录覆盖每个容器的 /data/ddb/server 目录。high
升级版本步骤重启 docker 容器。high
某些 docker 镜像(例如 ubuntu:latest)问题不包含 tzdata 包,导致 dolphindb 启动报错:Can't find time zone database. Please use parameter tzdb to set the root directory of time zone database.high
tzdata 缺失问题解决方法安装 tzdata:apt-get install tzdatahigh
docker 中 license 校验(机器指纹)问题原因正式 license 需要校验服务器硬件信息,而 docker 中没有权限获取此信息。high
docker 中机器指纹获取报错日志<ERROR> : Failed to retrieve machine fingerprinthigh
机器指纹问题解决方法映射宿主机 /etc/ 到容器 /dolphindb/etc(docker run 添加参数:-v /etc:/dolphindb/etc)。high