docker 管理应用程序下载与安装说明

 

docker 管理应用程序 (dockerServer.zip) 可以将集算器的群集和 docker 结合在一起,进行高效的运算、合理的资源分配与管理。

通过集算器的Docker 登录进行登录时会启动 docker 容器和集算器服务,登录成功后即可在 Client 端远程调用 splx 文件执行计算。

登录前需要先下载并安装配置好 docker 管理应用程序。

安装说明

步骤 1:安装集算器镜像

导入集算器镜像,如:

docker load -i esproc.tar

注:自制镜像文件关于产品打包目录的注意事项请参考自制镜像文件的打包目录说明章节

步骤 2:安装配置 docker 服务管理

dockerServer 负责用户登录管理、docker 容器启动、关闭管理等。

下载解压dockerServer.zip,解压后将如下文件放置到server.sh中设置的主目录 /home/docker/java 下,脚本及配置文件说明:

文件

说明

dockerServer.jar

dockerServer 服务应用 jar 包

go.sh

进入 docker 容器脚本

raq_get_image.sh

查看正使用的 docker 容器脚本

raq_start.sh

启动 docker 脚本

raq_stop.sh

关闭 docker 脚本

server.sh

dockerServer 服务启动脚本

docker_server.xml

docker 服务配置文件,主服务器才有 <NodeType> 选项

docker_users.xml

docker 用户管理文件,主服务器才有此文件

配置文件在流程环节中的使用:

1png

步骤 3:宿主机目录准备

集算器镜像安装完成后,里面的内容为只读,容器中操作的数据也会随容器关闭而丢失。为了实现可读写集算器用户数据,宿主机下的共享目录及用户目录会挂载到 docker 容器中,因此,需保证宿主机目录下共享目录存在,用户目录缺省会在登陆后自动创建,容器目录映射关系如下:

33png

共享目录可在docker_server.xml里修改配置,用户目录可在docker_users.xml里修改配置。

步骤 4:资源文件部署

下图所示资源文件,根据需要存放在宿主机相应目录下,程序会优先从这些目录读取:

1png

公共数据:由 docker 管理员管理,用户为只读访问权限,所有的用户都能访问;

私有数据:docker 用户自己管理的数据,只有本用户才能访问此数据,用户可读写、修改等,其它用户不能访问。此数据可持久保存在宿主机目录下,不会因为 docker 容器的关闭而丢失。

步骤 5:配置 docker_server.xml 服务器管理

docker_server.xml 配置示例

<?xml version="1.0" encoding="UTF-8"?>
 <Config>
 	<Server>192.168.18.161:9001</Server>
 	<Share>/root/docker/share</Share>
 	<NodeType>manager</NodeType>
 </Config> 

说明:

<Server>标签:client 端访问 Server 端时的 IP 和端口号,示例如下:

Docker1989png

<Share>标签:共享目录。

<NodeType>标签:属性值为 manager 时,表示此物理机为主服务器。

场景一:一台物理机配置一个或多个 docker

配置 <NodeType> 标签属性值为 manager

场景二:多台物理机配置多个 docker

各个物理机之间要相互通信,所以通信端口 9001(或者为其它端口)要求一致。

主服务器的物理机配置 <NodeType> 标签属性值为 manager

其他物理机无此标签

步骤 6:配置 docker_users.xml 用户管理

docker_users.xml 配置示例

<?xml version="1.0" encoding="UTF-8"?>
 <Users>
 	<User>
 		<Name>aaa</Name>
 		<Alias>张三</Alias>
 		<Pwd>123456</Pwd>
 		<Memory>500m</Memory>
 		<CPU>512</CPU>
 		<Home>/opt/app/aaa</Home>
 		<Unit>192.168.18.161:8281</Unit>  
 	</User>
 	<User>
 		<Name>bbb</Name>
 		<Alias>李四</Alias>
 		<Pwd>123456</Pwd>
 		<Memory>100m</Memory>
 		<CPU>256</CPU>
 		<Home>/opt/app/bbb</Home>
 		<Unit>192.168.18.162:8282,192.168.18.162:8283</Unit>
 	</User>
	……
</Users>

说明:

<Name>标签:Client 端访问 Server 端时的用户名,要求是唯一的,最好是英文,docker 使用时,不允许同名的用户名同时使用。

<Pwd> 标签:Client 端访问 Server 端时的密码。

<Alias> 标签:用户名别名,方便用户区分记忆。

<Memory> 标签:设置 docker 内存,最小值为 4M, 需在参数后面加上单位 m。

<Home> 标签:设置用户在宿主机上存储的位置, 要求可读写, 它下面分 config,script,data 三个子目录,分别对应存放配置文件、splx 脚本文件及数据文件。

<Unit> 标签:docker 映射(内外)端口,即为用户分配的节点机,要求 ip:port 是唯一的,防止资源上的冲突。每个 ip:port 对应一个 docker 容器,可分配给用户一个或多个 docker 容器。

场景一:一台物理机配置一个或多个 docker

<Unit>192.168.18.161:8281,192.168.18.161:8282</Unit>

场景二:多台物理机配置多个 docker

<Users>
    <User>
         <Unit>192.168.18.161:8281</Unit>
    <User>
    <User>
         <Unit>192.168.18.162:8282,192.168.18.162:8283</Unit>
    <User>
    ……
<Users>

步骤 7:配置集算器 unitServer.xml 文件

unitServer.xml 为集算器集群资源配置文件, 分配 ip:port 资源,该文件可以从 dockerServer.zip 中获取,配置好后放至docker_server.xml设置的 share 目录中。

unitServer.xml 配置示例

Docker3518png

docker 管理员集中统一分配集算器节点访问端口,让 docker 访问端口映射到集算器的端口,这样用户通过 docker 就可以访问集算器了。配置中的 Host ip 用 localhost,每个 Host 分配一个可用且不重复端口。

步骤 8:配置集算器 raqsoftConfig.xml 文件

raqsoftConfig.xml 为集算器配置文件,可用来配置寻址路径、主目录、系列号、数据源、外部库等信息,该文件可以从 dockerServer.zip 中获取,配置好后放至docker_users.xml 中用户 Home 的 config 目录,如 /opt/app/aaa/config。

raqsoftConfig.xml 配置示例:(注:红框内为必填项)

11png

步骤 9:启动 dockerServer 服务

在使用 docker 前,需要将各个服务器上的dockerServer 服务启动

启动 dockerServer 服务:

# /home/docker/java/server.sh

dockerServer 服务启动成功时,会打印如下信息:

Docker3964png

常见错误:

Docker3972png

Docker3974png

自制镜像文件的打包目录说明

官网下载最新版的集算器企业版 Linux 安装包。在 Linux 系统按照提示安装在 /scudata 目录下,安装后可将 scudata 目录作为制作镜像用到的打包目录。

注:
1,自制集算器 docker 镜像文件的前提是已安装好 docker 服务。
2,按照 docker 镜像文件的常规制作方法制作集算器镜像文件即可,本节仅针对自制镜像文件使用打包目录时的注意事项进行说明。
3,Dockerfile 文件中 RUN 目录需与集算器 Linux 安装目录位置保持一致,并将 WORKDIR 后续指令的工作目录指定为集算器 Linux 安装目录 /esProc/bin。

(1)将已安装的集算器目录复制到和 Dockerfile 同级目录:

Docker4356png

(2)修改说明:

uscudata/esProc/bin/ServerConsoleEE.sh:更新内容如下

echo java -XX:+DisableExplicitGC -XX:+PrintGC -XX:SurvivorRatio=1 -XX:NewSize=$3 -Xms$4 -Xmx$5  -cp "$START_HOME"/esProc/classes:"$START_HOME"/esProc/lib/*:"$START_HOME"/common/jdbc/* -Duser.language="$language" -Dstart.home="$START_HOME"/esProc com.scudata.ide.spl.ServerConsoleEE $1 $2
java -XX:+DisableExplicitGC -XX:+PrintGC -XX:SurvivorRatio=1 -XX:NewSize=$3 -Xms$4 -Xmx$5  -cp "$START_HOME"/esProc/classes:"$START_HOME"/esProc/lib/*:"$START_HOME"/common/jdbc/* -Duser.language="$language" -Dstart.home="$START_HOME"/esProc com.scudata.ide.spl.ServerConsoleEE $1 $2

22png

scudata/esProc/lib/ 目录下,集算器相关 jar,重命名为不带日期的名称

例如:esproc-bin-20241126.jar 更名为:esproc-bin.jar

         esproc-ent-20241126.jar 更名为:esproc-ent.jar

         esproc-ext-20241126.jar 更名为:esproc-ext.jar

Docker5168png