9.3. 配置通用设备插件


重要

MicroShift 的通用设备插件只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅以下链接:

在 MicroShift 中默认禁用通用设备插件(GDP)。要使用 GDP,您必须启用它并指定 Kubernetes 应用程序可访问的主机设备。要启用 GDP,您必须修改 MicroShift config.yaml 文件或创建配置片断文件。例如: /etc/microshift/config.d/10-gdp.yaml

先决条件

  • 已安装 MicroShift。
  • 您在 /etc/microshift 目录中创建了自定义 config.yaml 文件。
  • 已安装 OpenShift CLI(oc)。
  • 在 MicroShift 主机上具有 sudo 权限。
  • 您已找出要向 MicroShift 节点公开的特定主机设备。例如: /dev/video0,/dev/ttyUSB*, 或 USB Vendor/Product ID。

流程

  1. 在 CLI 中使用 sudo 权限,在文本编辑器中打开 /etc/microshift/config.yaml
  2. 找到 genericDevicePlugin 部分。如果不存在,请添加它。
  3. status 参数设置为 Enabled,并定义应公开的 设备。每个设备定义 都需要一个名称和 一个或多个组。每个组都可以使用 路径 (包括文件型设备)指定设备,包括 glob 模式或 usbs,用于使用 Vendor/Product ID 的 USB 设备。您不能在同一设备组中混合 路径和 usbs

    带有默认值的 GDP 字段

    apiServer:
    # ...
    genericDevicePlugin:
      devices:
      - groups:
        - paths:
          - path: /dev/ttyUSB* 
    1
    
          - path: /dev/ttyACM* 
    2
    
        name: serial
      - groups:
        - paths:
          - path: /dev/fuse 
    3
    
        name: fuse 
    4
    
      - groups:
        - usbs: 
    5
    
          - product: "0x7523" 
    6
    
            serial: ""
            vendor: "0x1a86" 
    7
    
        name: converter
      domain: device.microshift.io 
    8
    
      status: Enabled
    Copy to Clipboard Toggle word wrap

    1
    公开此 glob 匹配的所有 USB 串行设备。
    2
    公开此 glob 匹配的所有 ACM 串行设备。
    3
    例如,fuse 设备的文件路径。
    4
    例如,该设备的名称。
    5
    根据供应商 ID 和产品 ID 公开特定 USB 设备。
    6
    例如,CH340 串行转换器的产品 ID
    7
    例如,CH340 串行转换器的供应商 ID。
    8
    GDP 的默认域。
    重要
    • microshift show-config 参数的输出可能包含串行设备的预配置默认路径,即使您没有在 config.yaml 中明确配置了它们。如果在没有特定用户配置的情况下启用了通用设备插件,则这些路径代表默认的发现设置。
    • 为了实现一致性和精确的设备目标,特别是在处理多个类似设备时,请考虑使用 /dev/serial/by-id/ 或特定 USB 供应商、产品或 Serial ID 而非 /dev/ttyUSB* 等广泛 glob 模式。
    • 设备组中的 count 参数允许单个设备或由 glob 匹配的一组设备,以便同时分配给不同的 pod。如果省略 则默认为 1
  4. 保存 config.yaml 文件。
  5. 重启 MicroShift 服务以应用更改:

    $ sudo systemctl restart microshift
    Copy to Clipboard Toggle word wrap

    花一些时间让 MicroShift 重启,并使 GDP 使用 Kubelet 注册其设备。

验证

  • 您可以运行以下命令来检查节点中的可用设备:

    $ oc describe node <microshift_node_name> | grep "device.microshift.io" 
    1
    Copy to Clipboard Toggle word wrap
    1
    <microshift_node_name > 替换为您的节点名称。
  • 根据您的配置,预期输出表示设备现在可以在 MicroShift 节点中发现并可以调度。

    输出示例

    Capacity:
     cpu:                                2
     device.microshift.io/audio:         0
     device.microshift.io/capture:       0
     device.microshift.io/custom-device: 1
     device.microshift.io/dummy-video:   0
     device.microshift.io/fuse:          0
     device.microshift.io/serial:        5
     device.microshift.io/video:         0
    Allocatable:
     cpu:                                2
     device.microshift.io/audio:         0
     device.microshift.io/capture:       0
     device.microshift.io/custom-device: 1
     device.microshift.io/dummy-video:   0
     device.microshift.io/fuse:          0
     device.microshift.io/serial:        5
     device.microshift.io/video:         0
    Allocated resources:
     (Total limits may be over 100 percent, i.e., overcommitted.)
     Resource                           Requests     Limits
     --------                           --------     ------
     cpu                                450m (22%)   500m (25%)
     memory                             1550Mi (42%) 500Mi (13%)
     ephemeral-storage                  0 (0%)       0 (0%)
     hugepages-1Gi                      0 (0%)       0 (0%)
     hugepages-2Mi                      0 (0%)       0 (0%)
     device.microshift.io/audio         0            0
     device.microshift.io/capture       0            0
     device.microshift.io/custom-device 1            1
     device.microshift.io/dummy-video   1            1
     device.microshift.io/fuse          0            0
     device.microshift.io/serial        0            0
     device.microshift.io/video         0            0
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat