运维部署
在 GKE 上运行批处理/HPC 作业:用 Job…
适用于在 GKE 上运行批处理数据管道、HPC 仿真、大规模并行计算、ML 训练和 CI/CD 构建农场,需要作业队列、MPI/JobSet 编排或 Spot/缩容优化时。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在 GKE 上运行批处理/HPC 作业:特定
解决思路
- 使用 MCP 工具管理 GKE 资源:apply_k8s_manifest、get_k8s_resource、describe_k8s_resource、get_k8s_logs、delete_k8s_resource、list_k8s_events。
- 用 Kubernetes Job 运行批处理:在 batch/v1 Job 中设置 parallelism: 10、completions: 100、backoffLimit: 3;Pod 模板用容器 worker,镜像 <IMAGE>,resources.requests.cpu: 1、memory: 2Gi,restartPolicy: Never。
- 用 JobSet 处理复杂多作业工作流:金路径下在 monitoringConfig 中启用 JobSet 监控(JOBSET)。
- 定义 JobSet:apiVersion: jobset.x-k8s.io/v1alpha2,kind: JobSet,metadata.name: training-job,spec.replicatedJobs 中 name: workers、replicas: 4,template.spec.parallelism: 1、completions: 1,容器 worker 设置 resources.requests.cpu: 4、memory: 8Gi。
- 安装 Kueue:kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/latest/download/manifests.yaml。
- 定义 Kueue ClusterQueue:apiVersion: kueue.x-k8s.io/v1beta1,kind: ClusterQueue,metadata.name: batch-queue,spec.namespaceSelector: {},resourceGroups.coveredResources: [cpu, memory],flavors.name: default,resources 设置 cpu nominalQuota: 100、memory nominalQuota: 200Gi。
- 定义 Kueue LocalQueue 让命名空间使用队列:apiVersion: kueue.x-k8s.io/v1beta1,kind: LocalQueue,metadata.name: batch-local,metadata.namespace: batch-jobs,spec.clusterQueue: batch-queue。
- 对紧耦合 HPC 启用 Compact Placement:Standard 集群创建节点池 hpc-pool,命令 gcloud container node-pools create hpc-pool --cluster <CLUSTER_NAME> --region <REGION> --machine-type c3-standard-44 --placement-type COMPACT --num-nodes 8 --enable-autoscaling --min-nodes 0 --max-nodes 16 --quiet。
- 安装 MPI Operator:kubectl apply -f https://raw.githubusercontent.com/kubeflow/mpi-operator/master/deploy/v2beta1/mpi-operator.yaml。
- 定义 MPIJob:apiVersion: kubeflow.org/v2beta1,kind: MPIJob,metadata.name: hpc-simulation,spec.slotsPerWorker: 4;Launcher replicas: 1,容器 launcher 镜像 <MPI_IMAGE>,command: [mpirun, -np, 32, ./simulation],resources.requests.cpu: 1、memory: 2Gi,limits.cpu: 2、memory: 4Gi;Worker replicas: 8,容器 worker 镜像 <MPI_IMAGE>,resources.requests.cpu: 4、memory: 8Gi,limits.cpu: 8、memory: 16Gi。
- 对批处理使用 Spot VM:批处理适合可中断、可 checkpoint 的 Spot VM。
- 用 ComputeClass 配置 Spot 优先:设置 Spot-first priority 和 activeMigration,在 Spot 可用时回到 Spot;参考 gke-compute-classes skill 的 Spot-with-fallback 模式。
- 对批处理集群启用缩容到零:Autopilot 金路径自动在无 Pod 调度时节点缩容到零;Standard 在批处理节点池设置 --min-nodes 0。
- 始终为所有 batch/HPC manifests 指定 resource requests 和 limits(CPU、memory,可选 GPU/TPU),用于 Kueue admission、autoscaling 和防止资源饥饿。
- 对 Spot VM/TPU 上长时间运行的 AI 训练:使用 GKE maintenance exclusions 在训练窗口阻止自动集群升级/重启,以减少不必要的抢占。
- MPI 工作负载:使用 Kubeflow Training Operator 通过 MPIJob 自定义资源编排分布式 MPI 应用。
- Kueue 与 JobSet:用 Kueue 做多租户作业队列和公平共享;用 JobSet 做多组件紧耦合工作负载。
- 韧性:始终在 Job 上设置 backoffLimit,并实现应用级 checkpointing(例如 Orbax 或 PyTorch checkpointing)以在 Spot VM 抢占后存活。
适用边界 · 注意事项
- 不适用于标准 Web 应用部署;标准 Web 应用请使用 gke-app-onboarding。