更新时间:2024-09-05 GMT+08:00

应用模板

容器应用模板用于定义用户的边缘应用,用户需要指定容器应用的容器镜像、配置信息、磁盘挂载信息以及资源占用信息。

应用需要基于镜像创建,用户首先需要先制作镜像并上传至镜像仓库。

创建应用模板

  1. 登录IEF管理控制台,在“总览”页面切换实例为铂金版。
  2. 选择左侧导航栏“边缘应用 > 应用模板”,单击页面右上角“创建应用模板”
  3. 填写基本信息。

    • 名称(必填):应用模板名称。
    • 版本(必填):版本号。
    • 别名:应用模板名称以外的一种名称。
    • 架构:选择应用支持的架构。
    • 描述:模板的描述信息。
    • 标签:标签可用于对应用模板进行标记,方便分类管理。此处的标签只用于标识应用模板,可以在搜索时使用标签过滤应用模板。

  4. 单击“下一步”,添加容器。

    1. 选择需要部署的镜像,单击“使用镜像”
      • 我的镜像:展示了您在容器镜像服务中创建的所有镜像。
      • 他人共享:展示了其他用户共享的镜像。
    2. 单击“下一步”,配置容器规格。
      图1 镜像信息
      • 镜像版本:请选择需要部署的镜像版本。
      • 容器规格:据需要选择容器CPU、内存、昇腾AI加速卡和GPU的配额。
      • 昇腾AI加速卡

        容器应用选择的AI加速卡配置与实际部署的边缘节点配置的AI加速卡必须一致,否则会创建应用失败,详见注册边缘节点

      虚拟化切分后的NPU类型,一个容器只能挂载一个虚拟化NPU,只有当该容器退出后,该虚拟化NPU才能分配给其他容器使用。

      昇腾AI加速卡支持的NPU类型,如下表。

      表1 NPU类型说明

      类型

      描述

      昇腾310

      昇腾310芯片

      昇腾310B

      昇腾310B芯片

      昇腾910

      昇腾910芯片

      昇腾310P

      昇腾310P芯片

      昇腾310P-共享模式

      昇腾310P芯片支持多容器共享

      昇腾310P-1C

      昇腾310P芯片按照模板名vir01虚拟化切分后的类型

      昇腾310P-2C

      昇腾310P芯片按照模板名vir02虚拟化切分后的类型

      昇腾310P-2C.1CPU

      昇腾310P芯片按照模板名vir02_1c虚拟化切分后的类型

      昇腾310P-4C

      昇腾310P芯片按照模板名vir04虚拟化切分后的类型。

      昇腾310P-4C.3CPU

      昇腾310P芯片按照模板名vir04_3c虚拟化切分后的类型

  5. 单击“下一步”,配置应用信息。

    • 启动命令

      容器镜像拥有存储镜像信息的相关元数据,如果不设置生命周期命令和参数,容器运行时会运行镜像制作时提供的默认命令和参数,Dockerfile中这两个字段为“Entrypoint”和“CMD”。

      如果在创建容器应用时填写了容器的运行命令和参数,将会覆盖镜像构建时的默认命令"Entrypoint"、"CMD",规则如下:

      表2 容器如何执行命令和参数

      镜像Entrypoint

      镜像CMD

      容器运行命令

      容器运行参数

      最终执行

      [touch]

      [/root/test]

      未设置

      未设置

      [touch /root/test]

      [touch]

      [/root/test]

      [mkdir]

      未设置

      [mkdir]

      [touch]

      [/root/test]

      未设置

      [/opt/test]

      [touch /opt/test]

      [touch]

      [/root/test]

      [mkdir]

      [/opt/test]

      [mkdir /opt/test]

      图2 启动命令
      • 运行命令

        输入可执行的命令,例如/run/start

        若可执行命令有多个,多个命令之间用空格进行分隔。若命令本身带空格,则需要加引号("")。

        多命令时,运行命令建议用/bin/sh或其他的shell,其他全部命令作为参数来传入。

      • 运行参数

        输入控制容器运行命令的参数,例如--port=8080

        若参数有多个,多个参数以换行分隔。

    • 环境变量

      容器运行环境中设定的变量。可以在部署应用时修改。

      单击“添加环境变量”,输入变量名称,变量值支持手动添加、密钥导入、配置项导入和变量引用方式。

      • 手动添加支持自定义变量名称和变量值。
      • 使用密钥导入,环境变量名称可自定义输入,环境变量值支持引用密钥的属性值,密钥创建方法请参见密钥
      • 使用配置项导入,环境变量名称可自定义输入,环境变量值支持引用配置项的属性值,配置项创建方法请参见配置项
      • 变量引用支持引用“hostIP”,即边缘节点的IP地址。

      IEF不会对用户输入的环境变量进行加密。如果用户配置的环境变量涉及敏感信息,用户需要自行加密后再填入,并在应用中自己完成解密过程。

      IEF也不提供任何加解密工具,如果您需要设置加密密文,可以使用其他平台的加解密工具。

    • 卷是指容器运行过程中使用的存储卷,当前支持如下四种类型。

      • hostPath:将主机某个目录挂载到容器中。hostPath是一种持久化存储,应用删除后hostPath里面的内容依然存在于边缘节点本地硬盘目录中,如果后续重新创建应用,挂载后依然可以读取到之前写入的内容。

        您可以将应用日志目录挂载到主机的“/var/IEF/app/log/{appName}”目录,“{appName}”是应用名,边缘节点会将“/var/IEF/app/log/{appName}”目录下后缀为log和trace的文件上传到AOM。

        图3 日志卷挂载
      • emptyDir:一种简单的空目录,主要用于临时存储,支持在硬盘或内存中创建。emptyDir挂载后就是一个空目录,应用程序可以在里面读写文件,emptyDir的生命周期与应用相同,应用删除后emptyDir的数据也同时删除掉。
      • configMap:存储应用所需配置信息的资源类型,创建方法请参见配置项
      • secret:密钥是一种用于存储应用所需的认证信息、证书、密钥等敏感信息的资源类型,创建方法请参见密钥
        • 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致容器异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响容器启动的文件,否则文件会被替换,导致容器启动异常,应用创建失败。
        • 挂载高危目录的情况下,建议使用低权限账号启动,否则可能会造成宿主机高危文件被破坏。
    • 选项
      • 特权选项

        可以通过开启“特权选项”,使容器拥有root权限,可以访问主机上的设备(如GPU、FPGA)。

      • 指定运行用户

        IEF默认不改变容器运行的用户,以构建镜像时定义的运行用户来运行。

        打开开关后,下方出现运行用户的输入框,可输入范围为0~65534的整数。指定了运行用户后,应用将以该运行用户来运行。如果镜像的操作系统中没有该用户ID,将导致容器应用启动失败。

      • 重启策略

        总是重启:当应用容器退出时,无论是正常退出还是异常退出,系统都会重新拉起应用容器。

        失败时重启:当应用容器异常退出时,系统会重新拉起应用容器,正常退出时,则不再拉起应用容器。

        不重启:当应用容器退出时,无论是正常退出还是异常退出,系统都不再重新拉起应用容器。

      • 容器网络

        主机网络:使用宿主机(边缘节点)的网络,即容器与主机间不做网络隔离,使用同一个IP。

        端口映射:容器网络虚拟化隔离,容器拥有单独的虚拟网络,容器与外部通信需要与主机做端口映射。配置端口映射后,流向主机端口的流量会映射到对应的容器端口。例如容器端口80与主机端口8080映射,那主机8080端口的流量会流向容器的80端口。

    • 健康检查
      • 应用存活探针:应用存活探针用于探测容器是否正常工作,不正常则重启实例。当前支持发送HTTP请求和执行命令检查,通过检测容器响应是否正常。
      • 应用业务探针:应用业务探针用于探测业务是否就绪,如果业务还未就绪,就不会将流量转发到当前实例。

      详细的配置说明请参见健康检查配置说明

  6. 配置完成后,单击“创建”。

创建新的应用模板版本

边缘应用模板支持创建多个应用版本,方便您管理边缘应用。

  1. 登录IEF管理控制台,在“总览”页面切换实例为铂金版。
  2. 选择左侧导航栏的“边缘应用 > 应用模板”
  3. 单击需要增加新版本的应用模板,进入“应用模板详情”页面。
  4. 单击页面左下角的“创建应用版本”

    图4 创建应用版本

  5. 填入应用版本,单击“下一步”,填写模板详细信息,具体请参照创建应用模板,完成新版本的应用模板创建。

共享模板

边缘应用模板可以共享给同区域的其他服务实例使用。

v2 及以上铂金版实例版本和旧版本之间无法共享应用模板。

  1. 登录IEF管理控制台,在“总览”页面切换实例为铂金版。
  2. 选择左侧导航栏的“边缘应用 > 应用模板”
  3. 单击需要共享的应用模板,进入“应用模板详情”页面。
  4. 选择“共享”页签,单击“共享应用模板”,勾选服务实例。
  5. 单击“确定”