Deployment类型容器应用
更新时间:2023-03-28
1、Deployment类型说明
Deployment 类型应用将在 BIE边缘节点
上生成1个副本(pod),不管这个BIE边缘节点是集群类型,还是单机类型,包含多少个 Kubernetes节点
。
- 如果边缘节点是
集群
类型,比如一个包含1 master + 2 worker
3个Kubernetes节点。当部署一个 Deployment 类型应用的时候,由边缘Kubernetes动态调度运行在哪一个Kubernetes节点上。如果需要指定应用部署到特定的Kubernetes节点上,需要在云端设置应用部署目标节点的Kubernetes节点
标签,也叫做BIE边缘子节点标签
。 - 如果边缘节点是
单机
类型,则边缘节点就是一个单master的Kubernetes节点。当部署一个 Deployment 类型应用的时候,只有1个Kubernetes节点上会有pod
2、操作指南
2.1、创建容器应用
2.1.1、基本信息
进入应用部署页面,选择容器模式,点击创建应用进入应用创建页面。填写应用基本信息:
- 【名称】表示应用的名称,不可为空,不可重复
- 【函数应用】选择否
- 【描述】表示应用的文字性描述
- 【标签】表示用来标识应用的信息
点击添加标签进入标签设置界面,填写应用标签。
2.1.2、服务配置
点击下一步进入服务配置界面。可进行如下相关配置:
-
【卷配置】在此创建pod需要的卷。支持hostPath、配置项、密文、证书和emptydir五种卷的挂载:
- 【容器】支持单应用多容器,容器分为标准容器和初始化容器。部署时可先按顺序运行初始化容器,再运行标准容器。如果有多个初始化容器,支持按顺序启动。标准容器不支持按顺序启动。
- 【镜像仓库凭证】若应用中的镜像来自私有镜像仓库,可配置私有镜像仓库凭证
- 【工作负载】支持服务以不同负载类型运行,包括Deployment、DaemonSet、Job
- 【副本数】表示服务启动的pod个数
- 【服务访问量监控】是否监控边缘服务调用统计QPS信息
- 【host网络】表示服务容器是否使用host网络,默认使用桥接网络
2.1.3、容器配置
- 【名称】表示服务的名称,不可为空。同一个应用中的服务名称不可重复,包含相同服务名称的不同应用部署到同一个节点会导致其中一个部署报错
- 【镜像地址】表示服务对应的镜像地址,不可为空。该地址应该填写在边缘节点(设备)上可以通过docker拉取的镜像地址
-
【卷配置】挂载前一个页面创建的容器卷
- 文件清理:后台每隔十分钟做一次检查,当检测到服务关闭或job类型服务执行完毕时,卷配置文件将被自动清理。
- 【端口映射】表示容器内与宿主机的端口映射,支持TCP和UDP两种端口映射。 单应用多容器场景,不允许多个容器使用相同的容器内端口。如果两个容器的容器内端口重复,需要放在不同的应用当中。
- 【环境变量】表示服务容器的环境变量
- 【启动命令】表示启动时服务需要执行的命令,对应kubernetes command,对应Docker Entrypoint
- 【启动参数】表示启动时服务的参数,对应kubernetes args,对应Docker Cmd
- 【资源限制】表示启动服务容器的资源限制,目前支持设置CPU和内存
- 【特权选项】表示是否使用特权模式挂载资源,一般在摄像头,GPU或FPGA等需要较高权限访问的特殊资源时,设置为是
2.1.4、GPU资源限制说明
- 针对应用的GPU资源限制要求应用绑定的节点已经开启了GPU共享,如未开启会导致应用无法部署。相关操作可以参考单机节点或集群节点部分文档。此外,目前限制GPU显存时还需要对GPU算力进行限制。
- 限制GPU显存只能是整数,单位为256MB,对GPU算力限制也是整数,表示使用算力的百分比。
2.2、部署容器应用
应用配置完成之后,点击下一步进入目标设备匹配界面。点击匹配标签,弹出标签匹配界面。输入想要匹配的node标签名称及值,点击确定,会自动匹配出符合条件的节点。也可以在应用创建完毕以后,进入应用详情界面,指定应用部署的目标节点。
应用部署的目标节点在应用创建完毕以后可以修改。
2.3、目标节点的两种匹配方式
- 单目标设备:应用精确部署至指定的BIE边缘节点。
- 基于标签匹配:应用部署至满足标签匹配的全量BIE边缘节点。
2.4、应用启动的两种模式
- 立即启动:应用创建完毕,就立即开始找寻目标节点执行应用部署任务。
- 延时启动:应用创建完毕以后,等到延迟启动时间到了以后,才开始找寻目标节点执行应用部署任务。
应用部署的启动方式在应用创建完毕以后不能修改。
2.5、集群场景将应用部署至指定节点
针对集群多机场景,如果希望将应用部署到集群当中的某一个指定节点,则需要借助子节点标签来实现。首先参考容器模式节点当中的子节点标签编辑章节,给集群当中的子节点添加子节点标签。如下图所示:
在云端给子节点添加好标签以后,可以在边缘执行查看节点描述命令,查看节点的Labels:
kubectl describe node [node-name]
在确认这个子节点的标签以后,打开应用,找到目标节点,点击匹配标签,单机节点/集群标签是云端给边缘节点打的标签,我们这里就使用baetyl-node-name定位到一个边缘节点,然后在子节点标签处,添加目标标签demo=02,如下图所示:
执行上述操作以后,应用将部署至边缘集群的指定子节点当中。