9.4. 汎用デバイスを使用するアプリケーションのデプロイ
MicroShift で Generic Device Plugin (GDP) が設定され、有効になったら、公開したホストデバイスへのアクセスを要求する Pod、デプロイメント、StatefulSets などの Kubernetes ワークロードをデプロイできます。デバイスは、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 (指定されている場合) で使用できるようになります。アプリケーションは、ローカルデバイスであるかのように対話できるようになります。
たとえば、/dev/ttyUSB* にマッピングされる device.microshift.io/serial をリクエストした場合、アプリケーションは /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 の名前に置き換えます。