# 所有实验资源部署在 gpu-demo namespace
# 实验 1: K8s 基础 — ConfigMap + Deployment + Service
kubectl apply -f 01_nginx_demo.yaml
kubectl -n gpu-demo get configmap,deploy,pods,svc # 查看创建的所有资源
curl localhost:30080 # 访问 Nginx (NodePort)
kubectl -n gpu-demo scale deployment nginx-demo --replicas=2 # 扩容
kubectl -n gpu-demo get pods -o wide # 观察 Pod 分布
# 可选: 修改 ConfigMap, kubectl -n gpu-demo rollout restart deployment nginx-demo, 观察生效
# 实验 2: GPU Pod (需要 GPU 节点)
kubectl apply -f 02_gpu_pod.yaml
kubectl -n gpu-demo logs gpu-test # 查看 nvidia-smi 输出
# 实验 3: GPU Deployment + 资源争抢
kubectl apply -f 03_gpu_deploy.yaml
kubectl -n gpu-demo scale deployment gpu-inference --replicas=3 # 超过 GPU 数观察 Pending
kubectl -n gpu-demo describe pod <pending-pod> | grep -A5 Events # 查看调度失败原因
# 观察: Events 中显示 "insufficient nvidia.com/gpu"
# 清理
kubectl delete -f 01_nginx_demo.yaml
kubectl delete -f 02_gpu_pod.yaml
kubectl delete -f 03_gpu_deploy.yaml
kubectl delete namespace gpu-demo # 或保留 namespace 供后续实验