k8sでQSVを利用する
TL;DR
- intel-device-plugins-operatorを導入する
- .spec.containers[].resourcesの設定を行う
- PodからQSVが使えることを確認する
はじめに
前回 の続きです。
ドキュメント通り入れるだけですが作業ログとして残します。
環境
- k8s v1.36.2
- intel-device-plugins-operator v0.36.0
intel-device-plugins-operatorを導入する
https://intel.github.io/intel-device-plugins-for-kubernetes/cmd/operator/README.html#installation
を参考に入れていきます。
NFDのインストール
NFDを導入して、動作確認をします。
1# deploy NFD
2kubectl apply -k 'https://github.com/intel/intel-device-plugins-for-kubernetes/deployments/nfd?ref=v0.36.0'
3# deploy NodeFeatureRules
4kubectl apply -k 'https://github.com/intel/intel-device-plugins-for-kubernetes/deployments/nfd/overlays/node-feature-rules?ref=v0.36.0'
1kubectl get pod -n node-feature-discovery
2NAME READY STATUS RESTARTS AGE
3nfd-gc-df4cc89c-285g4 1/1 Running 1 30h
4nfd-master-5dc96497fb-bfxv7 1/1 Running 1 30h
5nfd-worker-kk4kj 1/1 Running 1 30h
cert-managerのインストール
microk8sを使っている関係でプラグインを有効化して完了
1microk8s enable cert-manager
Device Plugin Operatorのインストール
ドキュメント通りapplyするのみ
1kubectl apply -k 'https://github.com/intel/intel-device-plugins-for-kubernetes/deployments/operator/default?ref=v0.36.0'
GPU Pluginのインストール
こちらもドキュメント通り
1kubectl apply -f https://raw.githubusercontent.com/intel/intel-device-plugins-for-kubernetes/main/deployments/operator/samples/deviceplugin_v1_gpudeviceplugin.yaml
Podからの利用
nodeからi915が利用可能なことを確認します
1kubectl get node -o 'jsonpath={.items[*].status.allocatable}'
2{"cpu":"4","ephemeral-storage":"236209612Ki","gpu.intel.com/i915":"10","gpu.intel.com/monitoring":"1","hugepages-2Mi":"0","memory":"10081868Ki","pods":"110"}
利用するように適宜設定します
1 resources:
2 limits:
3 gpu.intel.com/i915: "1"
4 requests:
5 gpu.intel.com/i915: "1"
konomi TVのdockerイメージではQSVが利用出来るようになっているので、設定を変更して適用しておきます。
1general:
2- encoder: 'FFmpeg'
3+ encoder: 'QSVEncC'
この状態で適当なチャンネルを開いて再生すると、QSVが利用されるようになっています。
前回のホストに入れた intel_gpu_top で実際に利用されていることを確認します。
1sudo intel_gpu_top
2intel-gpu-top: 8086:46d1 @ /dev/dri/card1 - 101/ 632 MHz; 0% RC6; 238 irqs/s
3
4 ENGINES BUSY MI_SEMA MI_WAIT
5 Render/3D 9.12% |████▏ | 0% 0%
6 Blitter 0.00% | | 0% 0%
7 Video 9.13% |████▏ | 0% 0%
8 VideoEnhance 7.97% |███▋ | 0% 0%