创建部署工程
在专业版HiLens控制台新建技能后,可以将新建的技能部署到您的设备中,拓展设备的AI能力。
前提条件
进入专业版控制台
部署技能
- 在专业版管理控制台左侧菜单栏选择“技能开发 > 技能管理”。
进入“技能管理”页面。
- 选择技能,单击操作列的“部署”。
进入“部署”页面。
- 填写部署的信息,然后单击右下角的“下一步”。
表1 部署基本信息 参数
说明
部署名称
应用部署的名称,命名必须唯一。只允许英文小写字母、数字、中划线的字符,且长度范围在2~32, 开头和结尾只允许英文小写字母或数字。
描述
应用部署的简要描述,字符最大长度255,不允许出现^ ~ # $ % & * < > ( ) [ ] { } ' " \等特殊字符。
标签
为待部署工程添加标签。单击添加标签,填写标签名称和标签值。
只允许大小写字母、数字、下划线和中划线,不允许为空。标签名不允许重复,最大长度为36个字符,标签值最大长度为43个字符。
如果删除标签,可单击“操作”列的“删除”。
配置对象
可选择“设备列表”、“集群”。
设备列表
如果部署工程的配置对象选择“设备列表”,单击“选择设备”,勾选待部署技能的设备,单击“确定”。
必须选择运行中且已激活的设备。
选择集群
如果部署工程的配置对象选择“集群”,单击“选择集群”,勾选运行中的集群,单击“确定”。
技能来源
默认选择“技能管理”。如果需要切换技能,可选择“技能订单”或“自定义”。
- 技能订单:选择已购买的技能。
- 自定义:自定义技能。
选择技能(技能订单)
“技能来源”选择“技能订单”时,单击“选择订单”,勾选已购买的技能,并选择技能列表中的“安装规格”和“版本号”。
选择技能(自定义)
“技能来源”选择“自定义”时,按表2填写新创建的技能信息。
选择技能(技能管理)
默认显示步骤2中选择的技能。
配置启动参数
在“启动参数配置”页面填写配置信息,然后单击右下角的“下一步”。
“启动命令”、“环境变量”、“网络配置”、“数据存储”、“消息变量”、“健康检查”均不是必填项,如需要配置,可勾选其对应的选项,然后填写配置信息。
- 实例数
应用部署的实例数量。应用部署可以有一个或多个实例,用户可以自定义设置具体实例个数,默认为1。
每个实例都由相同的应用部署而成。为防止出现节点异常或实例异常,导致部署应用异常,建议使用多个实例,以保障部署技能的高可靠性。
- 重启策略
当前仅支持“总是重启”。
- 特权
特权开关,开启后,容器将可以访问主机上的所有设备。
- 计算资源
该部署可使用的计算资源,申请资源量是指预留给该部署的计算资源,限制部署是指该部署可使用的最大计算资源,超过限制时,技能将停止。
- 启动命令
设置容器启动时执行的命令。
未填写则镜像启动运行默认命令,填写后可运行特定命令,需要用到以下设置:
- 运行命令:控制镜像运行的实际命令。
- 运行参数:传递给运行命令的参数。
- 环境变量
在容器中添加环境变量,用于设置技能运行时的变量,可通过修改部署配置来。
在“环境变量”页签,单击“添加环境变量”,当前支持“手动添加”、“密钥导入”、“配置项导入”、“变量引入”。
- 手动添加:输入变量名称、变量值。
表3 手动添加环境变量 参数
说明
类型
手动添加。
变量名称
自定义填写变量名称,如demo。
不能为空,以字母或下划线开头,只允许输入字母、数字和下划线,且最大长度不超过2048。
变量值
输入变量的值,如value。不允许输入#^ $| % & * < > ( ) 且不能超过20480个字符。
- 密钥导入:输入变量名称,选择导入的密钥名称和数据。您需要提前创建密钥,具体请参见创建密钥。
表4 密钥导入环境变量 参数
说明
类型
密钥导入。
变量名称
自定义填写变量名称,如demo。
不能为空,以字母或下划线开头,只允许输入字母、数字和下划线,且最大长度不超过2048。
配置项名称/密钥名称
请选择对应的配置项名称/密钥名称。
配置项键/密钥键
请选择对应的配置项键/密钥键。
- 配置项导入:输入变量名称,选择导入的配置项名称和数据。您需要提前创建配置项,具体请参见管理配置项。
表5 配置项导入环境变量 参数
说明
类型
配置项导入。
变量名称
自定义填写变量名称,如demo。
不能为空,以字母或下划线开头,只允许输入字母、数字和下划线,且最大长度不超过2048。
配置项名称/密钥名称
配置项名称/密钥名称。
配置项键/密钥键
配置项键/密钥键。
- 变量引入:输入变量名称。
- 手动添加:输入变量名称、变量值。
- 网络配置
创建一个网络配置参数表。容器镜像应用的访问支持使用主机网络或使用端口映射。
- 端口映射:单击“添加端口映射”,填写容器端口和主机网卡地址,选择主机端口,参数说明请见表6。
- 主机网络:单击主机网络即可。
- 数据存储
创建一个数据存储环境变量表。给容器挂载数据存储,支持本地磁盘和云存储,适用于需持久化存储、高磁盘IO等场景。
单击“添加挂载卷”,按表7填写挂载卷信息。
- 健康检查
用于判断和业务是否正常运行,华为HiLens提供了存活与业务两种探针。
- 存活探针:检查容器是否正常,不正常则重启实例。如果容器的存活检查失败,集群会对该容器执行重启操作;如果容器的存活检查成功则不执行任何操作。
- 业务探针:检查用户业务是否就绪,不就绪则不转发流量到当前实例。一些程序的启动时间可能很长,比如要加载磁盘数据或者要依赖外部的某个模块启动完成才能提供服务。这时候程序进程在,但是并不能对外提供服务。这种场景下该检查方式就非常有用。如果容器的就绪检查失败,集群会屏蔽请求访问该容器;如果检查成功,则会开放对该容器的访问。
检查方式分为“HTTP请求检查”和“执行命令检查”。
- HTTP请求检查
HTTP 请求方式针对的是提供HTTP/HTTPS服务的容器,集群周期性地对该容器发起HTTP/HTTPS GET请求,如果HTTP/HTTPS response返回码属于200~399范围,则证明探测成功,否则探测失败。使用HTTP请求探测必须指定容器监听的端口和HTTP/HTTPS的请求路径。
例如:提供HTTP服务的容器,HTTP检查路径为:/health-check;端口为:80;主机地址可不填,默认为容器实例IP,此处以172.16.0.186为例。那么集群会周期性地对容器发起如下请求:GET http://172.16.0.186:80/health-check。
图2 HTTP请求检查
- 执行命令检查
命令检查是一种强大的检查方式,该方式要求用户指定一个容器内的可执行命令,集群会周期性地在容器内执行该命令,如果命令的返回结果是0则检查成功,否则检查失败。
对于上面提到的HTTP请求检查,可以通过执行命令检查的方式来替代,我们可以写一个脚本来对容器进行wget。
wget http://127.0.0.1:80/health-check
并检查response 的返回码,如果返回码在200~399 的范围,脚本返回0,否则返回-1。如下图:
图3 执行命令检查
后续操作
创建部署工程后,需要添加作业,运行技能。详情请见添加作业。