Loading...
Loading...
Diagnose GKE TPU VM instances stuck in Compute Engine repair (REPAIRING state) after host errors, maintenance events, or faulty host reports in single-host, multi-host, dynamic slicing, and TPU All Capacity mode node pools. Use when TPU instances in a slice node pool remain in REPAIRING, host error events appear in audit logs, or TPU slices are unschedulable due to a VM in repair. Don't use for nodes reporting Ready: Unknown when no VM is in REPAIRING (use gke-ai-troubleshooting-node-unresponsive-timeout), other NotReady nodes when no VM is in REPAIRING (use gke-node-notready), Pending Pods when all nodes are Ready (use gke-workload-troubleshooting), JobSet preemption events (use gke-ai-troubleshooting-jobset-interruption), or Slice custom resource lifecycle failures (use gke-ai-troubleshooting-tpu-dynamic-slices-monitoring).
npx skill4agent add google/skills gke-ai-troubleshooting-tpu-vm-repair-stuckREPAIRINGgcloudkubectlgcloudcontainer.googleapis.comcompute.googleapis.comlogging.googleapis.comkubectlroles/container.viewerroles/compute.viewerroles/logging.viewerroles/container.clusterAdminREPAIRINGRead-only rule: Run read-only diagnostic commands only. Never drain, delete, or re-create nodes, or run any other command that changes the cluster. Give the user any fix to apply themselves.
[Low Risk]{project_id}{cluster_name}{location}{cluster_mode}AutopilotStandard{tpu_version}tpu7x{nodepool_name}{group_name}{zone}{nodepool_name}instanceGroupUrls{nodepool_name}{project_id}{group_name}{zone}{instance_name}{instance_name}REPAIRING{issue_time}[Low Risk]{group_name}STATUSinstanceStatusACTIONcurrentActionSTATUSinstanceStatusREPAIRINGREPAIRING{instance_name}REPAIRINGRUNNINGACTIONNONEACTIONRECREATINGReadyUnknownNodeStatusUnknowngke-ai-troubleshooting-node-unresponsive-timeoutReadygke-node-notreadyReadyPendinggke-workload-troubleshooting[Low Risk]{instance_name}{issue_time}methodcompute.instances.hostErrorcompute.instances.terminateOnHostMaintenancecompute.instances.automaticRestartcompute.instances.preemptedJobSetgke-ai-troubleshooting-jobset-interruptionREPAIRINGcompute.instances.reportHostAsFaulty[Low Risk]{instance_name}ProviderID{nodepool_name}cloud.google.com/gke-nodepool{instance_name}ReadyREPAIRING{nodepool_name}tpu7xtpu7xcloud.google.com/gke-accelerator-topology-mode: PROVISION_ONLYSliceFAILEDSliceSliceFAILEDSlicegke-ai-troubleshooting-tpu-dynamic-slices-monitoringNotReadyERROR[Low Risk]autoRepair{nodepool_name}autoRepair{issue_time}ReadyLastTransitionTimeNotReadyNotReadyREPAIRINGREPAIRINGcompute.instances.reportHostAsFaulty{instance_name}[High Risk]Guardrails:
- Never change GKE-managed instance groups or VMs directly through Compute Engine, for example with
orgcloud compute instances deletecommands that change the group. Manage the node pool through GKE.gcloud compute instance-groups managed- Never run
on nodes in the node pool. Per Settings for Autopilot and Standard, if you usekubectl delete nodeto delete an unhealthy node when auto-repair is disabled, the underlying VM might become orphaned from the cluster, and you would continue to be billed for it.kubectl
autoRepair{nodepool_name}Kubernetes Engine Cluster Adminroles/container.clusterAdminSliceFAILEDgke-ai-troubleshooting-tpu-dynamic-slices-monitoringcompute.instances.reportHostAsFaulty{instance_name}REPAIRINGNotReadyautoRepair{group_name}RUNNINGNONE{nodepool_name}ReadyRUNNINGNONEReadygke-ai-troubleshooting-node-unresponsive-timeoutgke-node-notready