打包与部署

更新时间:
2023-12-21
下载文档

打包与部署

本节介绍如何对 VSOA RPC 示例进行打包与部署验证。

SylixOS 运行环境

步骤 1:打包容器镜像

参考 打包 C/C++ 微服务打包 JavaScript 微服务 方法打包如下代码示例。

  1. 将 RPC 微服务范例打包为 ecs_server_rpc.tar 容器镜像包。

  2. 将 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
    
  3. 将位置服务范例打包为 ecs_position.tar 容器镜像包,代码可使用 位置服务框架 中的参考代码。

步骤 2:部署容器镜像

使用命令行部署

开发者可以参考 部署至本地设备 章节,使用命令行部署 RPC 范例,此时需要手动启动位置服务,具体操作如下:

  1. 在开发阶段测试时,需使用如下命令将容器运行环境切换至手动开发模式。

    [root@sylixos:/apps]# ecs manual
    
  2. 上传 ecs_server_rpc.tarecs_client_rpc.tarecs_position.tar 容器镜像包至设备 "/apps" 目录。

  3. 加载 ecs_position.tar 为 ecs_position 容器,并启动容器。

    [root@sylixos:/apps]# ecs load ecs_position.tar ecs_position ecs_position
    [root@sylixos:/apps]# ecs start ecs_position
    
  4. 加载 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
    
  5. 加载 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 内置了位置服务,无需手动启动位置服务。

  1. 在容器管理平台管理时,需使用如下命令使容器运行环境切换至自动管理模式(默认上电启动模式):

    [root@sylixos:/apps]# ecs auto
    
  2. 上传 ecs_server_rpc.tarecs_client_rpc.tar 容器镜像包至 ECSM 容器管理平台。

  3. ecs_server_rpc.tar 进行部署,部署时对以下内容进行配置:

    a. 将 主机名称 修改为 light_server

    b. 打开 VSOA 开关,参考表 1 完成相关参数配置。

    表 1 VSOA 参数说明

    参数 描述 示例
    服务密码(选填)VSOA 服务的密码-
    自动映射端口(必填)设置是否开启自动映射端口。打开自动映射端口开关,则服务会自动识别节点上的可用端口并动态分配映射端口;关闭自动映射端口开关,则需要手动填写固定的映射端口-
    健康检查地址(选填)VSOA 健康检查地址/health
    健康检查超时时间(选填)启动健康检查最大超时时间3000 毫秒
    重试次数(选填)启动健康检查最大重试次数3
    启动时间(选填)健康检查启动时间5000 毫秒
    间隔时间(选填)每次健康检查间隔时间5000 毫秒
    开启存活探针(选填)设置是否开启容器存活探针策略。如果开启,当容器健康时,若系统检测到容器内的 VSOA 服务不健康,则自动重启容器-
  4. 同服务端部署操作,对客户端 ecs_client_rpc.tar 进行部署,部署时在环境变量中配置 ECSM 的位置服务端口(见表 2),如当前范例 ECSM 的 IP 为 "10.9.1.66",端口为 "3003"。

    部署过程中无需选中 VSOA 开关,部署完成后,查看客户端容器 ID。

    表 2 ECSM 默认端口说明

    端口功能
    3003位置服务端口
    3002配置中心端口
    3000ECSM 镜像仓库端口
    3001Web server 端口,访问页面和接口时使用

    说明:
    位置服务和配置中心端口在 ECSM 不同系统的安装版本上有区别。

  5. 当 RPC 服务端已运行时,在 SylixOS 终端输入 ecs log 容器ID on 命令查看容器内程序日志。

Linux 运行环境

步骤 1:打包容器镜像

参考 打包 C/C++ 微服务 中的 Linux 打包方法打包代码示例。

  1. 将 RPC 微服务范例打包为 docker_service_rpc.tar 镜像包。

  2. 将 RPC 客户端范例打包为 docker_client_rpc.tar 镜像包,在打包过程中,如果存在位置服务,则需要配置位置服务的 IP 和端口,请在打包向导中根据实际 VSOA 位置服务配置。

  3. 将位置服务范例打包为 docker_position_rpc.tar 镜像包,代码可使用 位置服务框架 中的参考代码。

步骤 2:部署容器镜像

使用命令部署

开发者可以参考 部署至本地设备 章节中的 Linux 部分,使用命令行部署 RPC 范例,具体操作如下:

  1. 上传 docker_service_rpc.tardocker_client_rpc.tardocker_position_rpc.tar 镜像包至目标设备中。

  2. 加载 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
    
  3. 加载 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
    
  4. 加载 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 内置了位置服务,无需手动启动位置服务。

  1. 上传 docker_service_rpc.tardocker_client_rpc.tar 容器镜像包至 ECSM 容器管理平台。

  2. 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 映射到容器中。

  3. 同服务端部署操作,对客户端 docker_client_rpc.tar 进行部署,部署时在环境变量中配置 ECSM 的位置服务端口(见表 4),如当前范例 ECSM 的 IP 为 "10.9.16.100",端口为 "3003"。

    部署过程中无需选中 VSOA 开关,部署完成后,查看客户端容器 ID。

    表 4 ECSM 默认端口说明

    端口功能
    3003位置服务端口
    3002配置中心端口
    3000ECSM 镜像仓库端口
    3001Web server 端口,访问页面和接口时使用

    说明:
    位置服务和配置中心端口在 ECSM 不同系统的安装版本上有区别。

  4. 当 RPC 服务端和 RPC 客户端都已经运行时,在部署客户端的 Linux 终端输入 docker logs -f 容器ID 命令查看容器内程序日志。

文档内容是否对您有所帮助?
有帮助
没帮助