9.4. 汎用デバイスを使用するアプリケーションのデプロイ


MicroShift で Generic Device Plugin (GDP)を設定して有効にした後、公開されたホストデバイスへのアクセスを要求する Pod、デプロイメント、または StatefulSet などの Kubernetes ワークロードをデプロイできます。デバイスはコンテナー内で使用可能になり、Pod を昇格した権限で実行します。

前提条件

  • MicroShift をインストールしている。
  • GDP を有効にして設定している。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. Pod 仕様でデバイス要求を定義します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: device-app
    spec:
      containers:
      - name: container
        image: <your_application_image> 
    1
    
        command: ["/path/to/your/app"] 
    2
    
        args: ["--device_path=/dev/video0"] 
    3
    
        resources:
          limits: 
    4
    
            device.microshift.io/video: 1 
    5
    
        securityContext: 
    6
    
          allowPrivilegeEscalation: false
          capabilities:
            drop: ["ALL"]
          runAsNonRoot: true
          seccompProfile:
            type: "RuntimeDefault"
    Copy to Clipboard Toggle word wrap
    1
    コンテナーイメージに置き換えます。
    2
    アプリケーションのコマンドに置き換えます。
    3
    たとえば、アプリケーションがデバイスを使用する方法などです。
    4
    リソース名は、device. microshift.io/<device_name> パターンに従う必要があります。 ここで、< device_name > は、設定ファイルで指定した 名前 と一致します。
    5
    ビデオ デバイスの 1 つのインスタンスを要求します。
    6
    最小権限値で定義および設定し、コンテナーにデバイスファイルへのアクセスなどが必要なパーミッションのみを持ち、コンテナーの他の機能を制限するようにします。
  2. 次のコマンドを実行して、マニフェストを MicroShift ノードに適用して Kubernetes ワークロードをデプロイします。

    $ oc apply -f <your-workload-manifest.yaml> 
    1
    Copy to Clipboard Toggle word wrap
    1
    &lt ;your_workload_manifest&gt; をワークロードマニフェストの名前に置き換えます。

結果

Pod の実行後に、指定されたホストデバイスはコンテナー内の元のパスまたは指定される場合は mountPath で利用できます。アプリケーションは、ローカルデバイスであるかのように対話できます。

たとえば、/dev/ttyUSB* にマップする device.microshift.io/serial を要求した場合、アプリケーションは /dev/ttyUSB0 またはコンテナー内の同様のパスにある可能性があります。

検証

  • 実行中の Pod 内で次のコマンドを実行して、デバイスアクセスを確認します。

    $ oc exec -it <pod_name> -- ls -l /dev/video0 
    1
    Copy to Clipboard Toggle word wrap
    1
    &lt ;pod_name&gt; を Pod の名前に置き換えます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat