DaemonSet类型和job类型服务部署
功能简介
应用是用于定义在一个或一组边缘节点上的部署任务,会将服务配置及存储卷配置下发到匹配的目标设备上,并进行部署。
应用根据边缘节点的标签来匹配目标设备,每一次应用信息的更改都会自动地下发到目标设备,并进行服务重部署及配置的更新。
应用包含一个或以上的服务,在服务的高级设置项中可以选择工作负载类型,现在支持 deployment 类型和 daemonset 类型,默认服务为 Deployment 类型的负载。在选择 DaemonSet 类型的负载并部署后,将在每个集群中的节点上生成一个副本。选择job类型负载并部署后,会生成一次性job任务。
DaemonSet类型应用部署流程
DaemonSet 类型的负载将在每个集群中的节点上生成一个副本。
应用列表
应用列表分页展示出当前实例下所有的应用信息。
在实例详情页的左侧菜单中点击应用部署,您将看到应用列表,右上角搜索框支持对应用名称进行模糊查询。
创建容器应用
基本信息
在应用列表页面点击创建应用进入应用创建页面。填写应用基本信息:
- 【名称】表示应用的名称,不可为空,不可重复
- 【应用类型】表示应用的类型,此处选择容器应用
- 【描述】表示应用的文字性描述
- 【标签】表示用来标识应用的信息
点击添加标签进入标签设置界面,填写应用标签。
服务配置
点击下一步进入服务配置界面,点击添加服务进入服务配置页面,填写容器服务基本信息:
- 【名称】表示服务的名称,不可为空。同一个应用中的服务名称不可重复,包含相同服务名称的不同应用部署到同一个节点会导致其中一个部署报错
- 【镜像地址】表示服务对应的镜像地址,不可为空。该地址应该填写在边缘节点(设备)上可以通过docker拉取的镜像地址
-
【卷配置】表示容器挂载的存储卷信息,支持hostPath、配置项、密文、证书的挂载
- 【端口映射】表示容器内与宿主机的端口映射,支持TCP和UDP两种端口映射
填写高级设置项
- 【副本数】表副本表示服务启动的容器个数。当负载类型为DaemonSet时,不支持调整副本数量
- 【环境变量】表示服务容器的环境变量
- 【启动参数】表示启动时服务的参数
- 【资源限制】表示启动服务容器的资源限制,目前支持设置CPU和内存
- 【host网络】表示服务容器是否使用host网络,默认使用桥接网络
- 【特权选项】表示是否使用特权模式挂载资源,一般在摄像头,GPU或FPGA等需要较高权限访问的特殊资源时,设置为是
在高级设置项中可以选择工作负载为DaemonSet。
至此服务配置设置完成,点击确定关闭服务配置界面。如需要设置镜像凭证,点击引入凭证进入引入镜像凭证界面。
目标设备
服务配置设置完成之后,点击下一步进入目标设备匹配界面,这里支持两种匹配方式,匹配标签和单节点匹配,其中匹配标签通过标签筛选机制选择合适的节点进行匹配关联,而单节点匹配则提供一种更轻量更简单选择方式,可以直接在列表中选择待匹配的某个节点进行关联。
例如,点击匹配标签,弹出标签匹配界面,在设置目标设备过滤条件的页面,支持两级标签筛选逻辑。
通过单机节点/集群标签会筛选匹配到节点列表里满足标签条件的节点;
通过子节点标签会在边缘部署时,对边缘设备集群中的节点进行筛选匹配,将服务调度到符合条件的边缘子节点上,这个功能主要在边缘为集群的场景下使用,你可以将服务调度到特定的满足要求的节点上,如一个需要GPU的服务需要调度到包含GPU硬件的节点上。
输入想要匹配的node标签名称及值,如有需要可以进一步填写子节点标签值,点击确定,会自动匹配出符合条件的节点,
点击创建完成应用的创建,跳转到应用列表界面,就可以看到刚才创建的应用信息了,容器应用创建步骤到此全部完成。
应用修改
在应用列表页面,点击准备修改应用名或查看,进入应用详情页面,修改操作参考应用新建功能。
注意:应用修改后最新的应用配置会自动地下发到匹配的边缘节点,并进行更新。
应用删除
在应用列表页面,点击需要删除的应用后面的删除按钮。
应用部署
应用创建后,需要了解应用在边缘节点部署情况。打开应用详情页面,点击目标节点里的节点名,跳转到节点详情页面,边缘节点创建在这里。
如果当前边缘节点没有在设备上安装,点击安装按钮,弹出安装命令窗口,本例以边缘设备运行k3s及docker为例:
如果边缘设备没有安装k3s,先复制docker安装命令,执行docker安装;再复制k3s安装命令,进行k3s安装;复制节点安装命令,在设备上执行。注意:需要设备已经连接网络,设备能够访问我们的云端服务,设备端安装k3s。如果设备端已经安装k8s和docker,直接复制节点安装命令,在设备上执行。
下面以边缘设备已经安装了k3s及docker的安装方式如下:

期间可能需要输入用户密码。
安装完成后,首先可以看到应用已部署。

且成功调度到了集群中包含 demo:02 的 31 节点上

应用部署更新
上述示例中通过两级标签筛选最终限定了负载类型为 DaemonSet 的 app01 部署在了有demo02资源的包含 demo:02的 31 子节点上。
下面演示修改app01的匹配机制,使app01不再部署在单一子节点上。
在app01的详情页,点击删除子节点标签选择器,然后app01会自动重新匹配并部署下发,可以在匹配到的节点详情页看到部署状态。

也可以在端上集群中查看部署情况。

job类型应用部署流程
job类型的工作负载会生成一次性job任务。
创建应用
在应用列表点击创建应用,容器配置如下

- 容器名称:自定义
- 镜像地址:perl
-
启动命令:
- perl
- -Mbignum=bpi
- -wle
- print bpi(2000)
容器配置完成后,在应用层可以看到工作负载的选项,选择job类型。

job配置变量含义如下:
- 完成:默认值为1,成功运⾏ Job 的 Pods 的数量。
- 并行:默认值为1,Job 在给定时间内应运⾏的最⼤ Pods 数。
- 失败重启限制:默认值为6,任务失败重启限制,只有重启策略为OnFailure时,此配置才⽣效
将该应用部署到指定节点上,job启动。
验证
应用部署成功后,可以在端上查看job执行情况

查看pod日志看job输出

