承接 Day 9(coturn + TURN-REST),今天用 Helm 部署 Selkies,並跑一個內建的 GL 樣板 App,驗證 GPU 能否正確分配,以及 WebRTC 串流是否能順利推到瀏覽器。
helm repo add selkies https://selkies-project.github.io/selkies/
helm repo update
kubectl create ns selkies || true
helm upgrade --install selkies selkies/selkies \
-n selkies \
--set ingress.enabled=true \
--set ingress.className=nginx \
--set ingress.host=gl.example.com \
--set turn.restUrl=https://turn.example.com/turn-cred \
--set turn.secretName=turn-secret
ingress.host
:請換成你的 DNS(或測試用 hosts 檔)。turn.restUrl
:指向前一篇 Day 9 部署的 TURN-REST API。turn.secretName
:coturn 的密鑰 Secret 名稱。Selkies Chart 提供簡單的 GPU 範例(通常基於 OpenGL 渲染,顯示 rotating gears):
# values-gl-sample.yaml
app:
name: gl-sample
image: nvidia/opengl:1.0-glvnd-runtime-ubuntu20.04
command: ["glxgears"]
gpu: 1
安裝方式:
helm upgrade --install gl-sample selkies/selkies-app \
-n selkies \
-f values-gl-sample.yaml
這會產生一個 Pod:
確認 Pod Ready:
kubectl get pods -n selkies -o wide
瀏覽 https://gl.example.com
(TLS 已由 Day 6 cert-manager 發憑證)。
預期結果:
chrome://webrtc-internals
可觀察 Candidate Pair、位元率、FPS。驗證 GPU 使用:
kubectl exec -n selkies <gl-sample-pod> -c gl-sample -- nvidia-smi
預期:看到 GPU 使用率隨著 glxgears 上升。
kubectl logs -n selkies <pod> -c sidecar
。gl.example.com
:確認 Ingress/TLS 憑證,DNS 或 hosts 設定。resources.limits.nvidia.com/gpu: 1
,以及 GPU Operator 狀態。webrtc-internals
檢查 ICE Candidate;若全是 host/srflx
,代表直連;若有 relay
,表示走 TURN。長く続かなさそう