打包与部署
本节介绍如何对 VSOA RPC 示例进行打包与部署验证。
SylixOS 运行环境
步骤 1:打包容器镜像
参考 使用 IDE 打包微服务 或 使用 ECSC 打包微服务 方法打包如下代码示例。
将 RPC 微服务范例打包为
ecs_server_rpc.tar
容器镜像包。将 RPC 客户端范例打包为
ecs_client_rpc.tar
容器镜像包,在打包过程中需配置 VSOA 的位置服务,其中 IP 和端口请根据实际 VSOA 位置服务配置:- 方法 1:在 config.json 中增加如下环境变量:
{ "env": ["VSOA_POS_SERVER=127.0.0.1:3000", ……], …… }
- 方法 2:在容器打包过程中在
/etc/vsoa.pos
中增加如下配置:
127.0.0.1 3000
将位置服务范例打包为
ecs_position.tar
容器镜像包,代码可使用 位置服务框架 中的参考代码。
步骤 2:部署容器镜像
使用命令行部署
开发者可以参考 部署至本地设备 章节,使用命令行部署 RPC 范例,此时需要手动启动位置服务,具体操作如下:
在开发阶段测试时,需使用如下命令将容器运行环境切换至手动开发模式。
[root@sylixos:/apps]# ecs manual
上传
ecs_server_rpc.tar
、ecs_client_rpc.tar
和ecs_position.tar
容器镜像包至设备 "/apps" 目录。加载
ecs_position.tar
为 ecs_position 容器,并启动容器。[root@sylixos:/apps]# ecs load ecs_position.tar ecs_position ecs_position [root@sylixos:/apps]# ecs start ecs_position
加载
ecs_server_rpc.tar
为 ecs_server_rpc 容器,并启动容器。[root@sylixos:/apps]# ecs load ecs_server_rpc.tar ecs_server_rpc ecs_server_rpc [root@sylixos:/apps]# ecs start ecs_server_rpc
加载
ecs_client_rpc.tar
为 ecs_client_rpc 容器,并启动容器,当 RPC 服务端及位置服务已运行时,可看到命令行终端输出如下运行日志。[root@sylixos:/apps]# ecs load ecs_client_rpc.tar ecs_client_rpc ecs_client_rpc [root@sylixos:/apps]# ecs start ecs_client_rpc
说明:
/etc/profile
是存放环境变量的文件,没有该文件不影响容器功能的正常使用。/etc/startup.sh
是启动自运行脚本,没有该文件不影响容器功能的正常使用。
使用 ECSM 部署
开发者也可以通过 ECSM 对容器镜像进行部署,具体过程可参考 部署容器镜像,此时因 ECSM 内置了位置服务,无需手动启动位置服务。
在容器管理平台管理时,需使用如下命令使容器运行环境切换至自动管理模式(默认上电启动模式):
[root@sylixos:/apps]# ecs auto
上传
ecs_server_rpc.tar
和ecs_client_rpc.tar
容器镜像包至 ECSM 容器管理平台。对
ecs_server_rpc.tar
进行部署,部署时对以下内容进行配置:a. 将 主机名称 修改为
light_server
。b. 打开 VSOA 开关,参考表 1 完成相关参数配置。
表 1 VSOA 参数说明
参数 描述 示例 服务密码(选填) VSOA 服务的密码 - 自动映射端口(必填) 设置是否开启自动映射端口。打开自动映射端口开关,则服务会自动识别节点上的可用端口并动态分配映射端口;关闭自动映射端口开关,则需要手动填写固定的映射端口 - 健康检查地址(选填) VSOA 健康检查地址 /health 健康检查超时时间(选填) 启动健康检查最大超时时间 3000 毫秒 重试次数(选填) 启动健康检查最大重试次数 3 启动时间(选填) 健康检查启动时间 5000 毫秒 间隔时间(选填) 每次健康检查间隔时间 5000 毫秒 开启存活探针(选填) 设置是否开启容器存活探针策略。如果开启,当容器健康时,若系统检测到容器内的 VSOA 服务不健康,则自动重启容器 - 同服务端部署操作,对客户端
ecs_client_rpc.tar
进行部署,部署时在环境变量中配置 ECSM 的位置服务端口(见表 2),如当前范例 ECSM 的 IP 为 "10.9.1.66",端口为 "3003"。部署过程中无需选中 VSOA 开关,部署完成后,查看客户端容器 ID。
表 2 ECSM 默认端口说明
端口 功能 3003 位置服务端口 3002 配置中心端口 3000 ECSM 镜像仓库端口 3001 Web server 端口,访问页面和接口时使用 说明:
位置服务和配置中心端口在 ECSM 不同系统的安装版本上有区别。当 RPC 服务端已运行时,在 SylixOS 终端输入
ecs log 容器ID on
命令查看容器内程序日志。
Linux 运行环境
步骤 1:打包容器镜像
参考 使用 Linux 向导打包微服务 中的 Linux
打包方法打包代码示例。
将 RPC 微服务范例打包为
docker_service_rpc.tar
镜像包。将 RPC 客户端范例打包为
docker_client_rpc.tar
镜像包,在打包过程中,如果存在位置服务,则需要配置位置服务的 IP 和端口,请在打包向导中根据实际 VSOA 位置服务配置。将位置服务范例打包为
docker_position_rpc.tar
镜像包,代码可使用 位置服务框架 中的参考代码。
步骤 2:部署容器镜像
使用命令部署
开发者可以参考 部署至本地设备 章节中的 Linux
部分,使用命令行部署 RPC 范例,具体操作如下:
上传
docker_service_rpc.tar
、docker_client_rpc.tar
、docker_position_rpc.tar
镜像包至目标设备中。加载
docker_position_rpc.tar
镜像,并启动容器。[acosail@AcoSail2]~$ sudo docker load -i docker_position_rpc.tar [acosail@AcoSail2]~$ sudo docker run -v /home/acosail/.vsoa:/root/.vsoa --net=host --name position_rpc position:latest
加载
docker_service_rpc.tar
镜像,并启动容器。[acosail@AcoSail2]~$ sudo docker load -i docker_service_rpc.tar [acosail@AcoSail2]~$ sudo docker run -v /home/acosail/.vsoa:/root/.vsoa --net=host --name service_rpc service:latest
加载
docker_client_rpc.tar
镜像,并启动容器,当 RPC 服务程序以及位置服务程序已运行时,可看到命令行终端输出如下运行日志。[acosail@AcoSail2]~$ sudo docker load -i docker_client_rpc.tar [acosail@AcoSail2]~$ sudo docker run -v /home/acosail/.vsoa:/root/.vsoa --net=host --name client_rpc client:latest
使用 ECSM 部署
开发者也可以通过 ECSM 对容器镜像进行部署,具体过程可参考 部署容器镜像,此时因 ECSM 内置了位置服务,无需手动启动位置服务。
上传
docker_service_rpc.tar
和docker_client_rpc.tar
容器镜像包至 ECSM 容器管理平台。对
docker_service_rpc.tar
进行部署,部署时对以下内容进行配置:a. 将 主机名称 修改为
light_server
。b. 将 网络类型 设置为 host 模式。
说明:
目前 VSOA SDK 在 Linux 容器中的使用,仅支持网络 host 模式。c. 打开 VSOA 开关,参考表 3 完成相关参数配置。
表 3 VSOA 参数说明
参数 描述 示例 服务密码(选填) VSOA 服务的密码 - 自动映射端口(必填) 设置是否开启自动映射端口。打开自动映射端口开关,则服务会自动识别节点上的可用端口并动态分配映射端口;关闭自动映射端口开关,则需要手动填写固定的映射端口 - 健康检查地址(选填) VSOA 健康检查地址 /health 健康检查超时时间(选填) 启动健康检查最大超时时间 3000 毫秒 重试次数(选填) 启动健康检查最大重试次数 3 启动时间(选填) 健康检查启动时间 5000 毫秒 间隔时间(选填) 每次健康检查间隔时间 5000 毫秒 开启存活探针(选填) 设置是否开启容器存活探针策略。如果开启,当容器健康时,若系统检测到容器内的 VSOA 服务不健康,则自动重启容器 - d. 单击 添加,完成资源配置中的文件系统配置。
说明:
此配置是将宿主机中注册的 VSOA License 映射到容器中。同服务端部署操作,对客户端
docker_client_rpc.tar
进行部署,部署时在环境变量中配置 ECSM 的位置服务端口(见表 4),如当前范例 ECSM 的 IP 为 "10.9.16.100",端口为 "3003"。部署过程中无需选中 VSOA 开关,部署完成后,查看客户端容器 ID。
表 4 ECSM 默认端口说明
端口 功能 3003 位置服务端口 3002 配置中心端口 3000 ECSM 镜像仓库端口 3001 Web server 端口,访问页面和接口时使用 说明:
位置服务和配置中心端口在 ECSM 不同系统的安装版本上有区别。当 RPC 服务端和 RPC 客户端都已经运行时,在部署客户端的 Linux 终端输入
docker logs -f 容器ID
命令查看容器内程序日志。