SuperAPI AI 工具集

gke-tpu-dynamic-slices-monitoring

部署与运维

查看项目

更新于 10-15 21:54

技能介绍

用途:监控 GKE 中 TPU Slice 自定义资源的状态,排查预配失败,在动态切片上部署工作负载并清理。

前提:项目需启用 Cloud Logging;kubectl 与 gcloud CLI 已配置可访问 GKE 集群。

诊断流程:先获取上下文(Project ID、Cluster Name、Region/Zone、Slice Name,可选 Issue Time)。若提供 Issue Time,需为精确时间戳,查询窗口为 [T-30m] 到 [T+30m]。

第一步用 kubectl describe slice <Slice Name> 查看状态、拓扑与 Conditions,据 Reason 判断:SliceNotCreated 等待重试;SliceCreationFailed 需人工核对节点存在、未被占用且拓扑匹配分区数;ACTIVATING 等待;ACTIVE 可部署;ACTIVE_DEGRADED 需关注互连或设备错误;FAILED 需确保节点属于同一 reservation 与 reservation block;DEACTIVATING 等待或按需移除 finalizer;INCOMPLETE 无需操作。

第二步校验工作负载清单:单切片需在 Pod 模板设置注解 cloud.google.com/gke-tpu-slice-topology,并在 nodeSelector 设置 cloud.google.com/gke-tpu-topology、cloud.google.com/gke-tpu-accelerator、cloud.google.com/gke-tpu-slice。多切片 JobSet 需设置注解 alpha.jobset.sigs.k8s.io/exclusive-topology: cloud.google.com/gke-tpu-slice,Pod 模板设置拓扑与加速器注解,且不要手动指定 gke-tpu-slice。

管理操作:切片卡在 DEACTIVATING 时可用 kubectl patch slice <Slice Name> --type json -p='[{"op": "remove", "path": "/metadata/finalizers"}]' 移除 finalizer;彻底禁用动态切片需先 kubectl get slice -A 确认删除全部切片,再执行 gcloud container clusters update <Cluster Name> --location=<Region/Zone> --no-enable-slice-controller,随后 kubectl delete crd slices.accelerator.gke.io,并清理节点标签 kubectl label nodes --all cloud.google.com/gke-tpu-slice- cloud.google.com/gke-tpu-slice-topology-。高风险操作执行前需用户明确确认。