承接 Day 10(Helm 部署 Selkies + gl 樣板驗證),今天進一步學習 Sidecar 模式:把 Selkies Sidecar 容器直接掛到目標應用(Isaac Sim/Isaac Lab)旁邊,讓它們共享 Pod lifecycle 與資源,並透過共享 Volume 與 Probe 達成穩定的串流服務。
以下以 Isaac Sim headless 容器 + Selkies sidecar 為例:
apiVersion: v1
kind: Pod
metadata:
name: isaac-selkies-demo
namespace: robotics
labels:
app: isaac-selkies-demo
spec:
restartPolicy: Never
containers:
- name: isaac-sim
image: nvcr.io/nvidia/isaac-sim:2023.1.1
command: ["bash","-lc","./runheadless.sh"]
resources:
limits:
nvidia.com/gpu: 1
volumeMounts:
- name: shared
mountPath: /shared
- name: selkies-sidecar
image: gcr.io/selkies-public/selkies-sidecar:latest
env:
- name: DISPLAY
value: ":0"
- name: TURN_REST_URL
value: "https://turn.example.com/turn-cred"
- name: TARGET_APP
value: "isaac-sim"
ports:
- containerPort: 8080 # Signaling / WebRTC 控制
volumeMounts:
- name: shared
mountPath: /shared
volumes:
- name: shared
emptyDir: {}
/shared
,可用來交換狀態或檔案。建議為 Selkies Sidecar 與 Isaac 容器各自加上 Probe:
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 10
periodSeconds: 30
/shared
,例如 Isaac 的狀態檔、Selkies 的 pipe/socket。/shared/config
,雙方讀取同一份設定。resources.limits
;確認 GPU Operator 正常。TURN_REST_URL
是否正確,防火牆是否開放。initialDelaySeconds
與健康檢查路徑。ドキュメント多すぎて、読み切れん