使用场景
在某些场景下,您可能需要对大量的边缘节点部署相同的应用,IEF提供批量应用部署 功能。
说明
● 仅IEF铂金版支持批量应用部署。
● 节点架构必须全部是同一架构的节点,比如全部为x86或arm。
● 容器镜像的架构必须与节点架构一致,比如节点为x86,那容器镜像的架构也必须是x86。
操作步骤
步骤1 登录IEF管理控制台,切换到铂金版实例。
步骤2 选择左侧导航栏的“批量管理 > 应用部署”,单击页面右上角的“批量应用部署”。
步骤3 配置应用部署作业基本信息。
图10-4 创建批量应用部署作业
● 名称:创建的应用部署作业名称。
● 描述:应用部署作业描述。
● 部署对象:需要部署容器应用的边缘节点。
单击“选择边缘节点”,勾选需要选择的边缘节点。
您还可以单击页面右上角的“标签搜索”,输入标签名和标签值,单击“搜 索”,筛选出指定标签的边缘节点。然后勾选边缘节点,单击“确定”。
图10-5 选择标签
● 重启策略
– 总是重启:当应用容器退出时,无论是正常退出还是异常退出,系统都会重 新拉起应用容器。
– 失败时重启:当应用容器异常退出时,系统会重新拉起应用容器,正常退出 时,则不再拉起应用容器。
– 不重启:当应用容器退出时,无论是正常退出还是异常退出,系统都不再重 新拉起应用容器。
● Host PID:容器与宿主机共享PID命名空间,启用此选项要求边缘节点软件版本 大于等于2.8.0。
步骤4 单击“下一步”,配置容器信息。
图10-6 容器信息
● 名称前缀:应用部署的名称前缀。IEF会根据前缀生成完整的名称。
● 实例数量:应用部署的实例数量。
● 配置方式
– 自定义配置:即从零开始配置容器应用,具体请参见步骤5。
– 应用模板配置:选择一个已经定义好的应用模板,可以在模板的基础上进行 修改,使用应用模板能够帮助您省去重复的工作量。模板的定义与步骤5需要 的配置相同,创建模板的方法请参见应用模板。
步骤5 配置容器。
选择需要部署的镜像,单击“使用镜像”。
● 我的镜像:展示了您在容器镜像服务中创建的所有镜像。
● 他人共享:展示了其他用户共享的镜像,共享镜像是在SWR中操作的,具体请参 见共享私有镜像。
选择镜像后,您可以配置容器的规格。
● 镜像版本:请选择需要部署的镜像版本。
须知
在生产环境中部署容器时,应避免使用latest版本。因为这会导致难以确定正在运 行的镜像版本,并且难以正确回滚。
● 容器规格:根据需要选择容器CPU、内存、AI加速卡的配额,注意一个容器应用 只能使用一种昇腾芯片。
图10-7 容器配置
您还可以对容器进行如下高级配置。
● 运行命令
容器镜像拥有存储镜像信息的相关元数据,如果不设置生命周期命令和参数,容 器运行时会运行镜像制作时提供的默认的命令和参数,Dockerfile这两个字段为
“Entrypoint”和“CMD”。
如果在创建容器应用时填写了容器的运行命令和参数,将会覆盖镜像构建时的默 认命令"Entrypoint"、"CMD",规则如下:
表10-1 容器如何执行命令和参数
镜像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]
图10-8 运行命令
– 运行命令
输入可执行的命令,例如/run/start。
若可执行命令有多个,多个命令之间用空格进行分隔。若命令本身带空格,
则需要加引号("")。
说明
多命令时,运行命令建议用/bin/sh或其他shell,其他全部命令作为参数来传入。
– 运行参数
输入控制容器运行命令的参数,例如--port=8080。
若参数有多个,多个参数以换行分隔。
● 选项配置
可以通过开启“特权选项”,使容器拥有root权限,可以访问主机上的设备(如 GPU、FPGA)。
● 环境变量配置
容器运行环境中设定的变量。可以在应用部署后修改,为应用提供极大的灵活 性。当前支持手动添加、密钥导入、配置项导入和变量引用方式。
– 手动添加支持自定义变量名称和变量值。
– 使用密钥导入,环境变量名称可自定义输入,环境变量值支持引用密钥的属 性值,密钥创建方法请参见密钥。
– 使用配置项导入,环境变量名称可自定义输入,环境变量值支持引用配置项 的属性值,配置项创建方法请参见配置项。
– 变量引用支持引用“hostIP”,即边缘节点的IP地址。
– 当使用Atlas 500等NPU时,请勿挂载在“/var/dlog”目录,因为这个目录被 Atlas的NPU-Plugin容器挂载占用。
步骤6 单击“下一步”,进行访问配置。
容器访问支持主机网络和端口映射两种方式。
● 端口映射
容器网络虚拟化隔离,容器拥有单独的虚拟网络,容器与外部通信需要与主机做 端口映射。配置端口映射后,流向主机端口的流量会映射到对应的容器端口。例 如容器端口80与主机端口8080映射,那主机8080端口的流量会流向容器的80端 口。
端口映射可以选择主机网卡,请注意端口映射不支持选择IPv6地址类型的网卡。
图10-10 端口映射
● 主机网络
使用宿主机(边缘节点)的网络,即容器与主机间不做网络隔离,使用同一个 IP。
步骤7 单击“下一步”,确认容器应用的规格,确认无误后单击“创建”。
----结束
状态说明
批量应用部署作业有以下八种状态。
● 排队中:作业等待执行
● 执行中:作业处于执行状态
● 成功:全部任务执行成功
● 部分成功:部分任务执行成功
● 失败:全部任务执行失败
● 停止中:作业处于停止中
● 已停止:作业已停止
● 更新超时:作业排队和执行时间超过10分钟仍未完成 批量作业执行过程中可以停止,停止后可以继续。
如果批量作业执行失败、部分成功或更新超时,可以重试执行作业,将未执行成功的 作业再次执行一遍。