9.4. 部署使用通用设备的应用程序
在 MicroShift 中配置并启用通用设备插件(GDP)后,您可以部署 Kubernetes 工作负载,如 pod、部署或 StatefulSets,它请求访问您公开的主机设备。设备在容器内可用,无需 pod 使用升级的特权运行。
先决条件
- 已安装 MicroShift。
- 您已启用并配置了 GDP。
-
已安装 OpenShift CLI (
oc)。
流程
在
Pod规格中定义设备请求:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将清单应用到 MicroShift 节点来部署 Kubernetes 工作负载:
oc apply -f <your-workload-manifest.yaml>
$ oc apply -f <your-workload-manifest.yaml>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <your_workload_manifest > 替换为工作负载清单的名称。
结果
pod 运行后,指定的主机设备将位于其原始路径上,或者在容器内的 mountPath (如果指定)。然后,应用程序可以与它交互,就像它是本地设备一样。
例如,如果您请求了 device.microshift.io/serial,它映射到 /dev/ttyUSB*,则应用程序可能会找到位于 /dev/ttyUSB0 的设备,或容器中的类似路径。
验证
通过在运行的 pod 中运行以下命令来验证设备访问:
oc exec -it <pod_name> -- ls -l /dev/video0
$ oc exec -it <pod_name> -- ls -l /dev/video01 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <pod_name > 替换为 pod 的名称。