9.3. Generic Device Plugin の設定


重要

MicroShift の Generic Device Plugin は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

MicroShift では、Generic Device Plugin (GDP) はデフォルトで無効になっています。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 のベンダー ID や製品 ID などです。

手順

  1. CLI から sudo 特権を使用して、テキストエディターで /etc/microshift/config.yaml を開きます。
  2. genericDevicePlugin セクションを見つけます。存在しない場合は追加します。
  3. status パラメーターを Enabled に設定し、公開する devices を定義します。各デバイス定義には、name と 1 つ以上の groups が必要です。各グループにおいて、glob パターンを含むファイルベースのデバイスの場合は paths を使用して、ベンダー/製品 ID を使用する USB デバイスの場合は usbs を使用してデバイスを指定できます。同じデバイスグループ内で pathsusbs を混在させることはできません。

    デフォルト値を持つ 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 で明示的に設定していない場合でも、シリアルデバイスの事前設定されたデフォルトパスが含まれる場合があります。これらのパスは、特定のユーザー設定なしで Generic Device Plugin が有効になっている場合のデフォルトの検出設定を表します。
    • 特に複数の類似デバイスを扱う場合、一貫性と正確なデバイスターゲティングを実現するには、/dev/ttyUSB* のような広範な glob パターンではなく、/dev/serial/by-id/ のような安定したデバイスパスや、特定の USB ベンダー ID、製品 ID、シリアル ID の使用を検討してください。
    • デバイスグループの count パラメーターを使用すると、単一のデバイス、または glob に一致するデバイスのセットを、異なる Pod に同時に複数回割り当てることができます。省略した場合、count はデフォルトで 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

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat