Loading...
Loading...
Monitors, troubleshoots, and manages GKE TPU Dynamic Slices custom resources. Use when checking TPU slice lifecycle states, troubleshooting slice provisioning failures, validating single-slice or multi-slice (JobSet) workload manifests, or safely patching stuck finalizers and disabling the slice controller. Don't use for generic GKE cluster node pool creation or standard non-TPU workload management (use gke-basics or gke-cluster-creation instead).
npx skill4agent add google/skills gke-tpu-dynamic-slices-monitoringkubectlgcloud{project_id}my-gcp-project{cluster_name}tpu-cluster{location}us-central1-a{slice_name}test-slice{timestamp}[T - 30m][T + 30m]kubectl describe slice {slice_name}Status.Conditionskubectl describe slice {slice_name}Status.ConditionsType: ReadyReasonStatus| Lifecycle State / Reason | Meaning | Recommended Action |
|---|---|---|
| GKE Slice Controller | Wait a few minutes and |
| : : is initializing the : re-check slice status. : | ||
| : : slice and performing : : | ||
| : : resource checks. : : | ||
| Prerequisites | Verify selected nodes |
| : : validation failed : exist, are unallocated, : | ||
| : : (e.g., selected nodes : and topology matches : | ||
| : : don't exist, nodes are : partition count. : | ||
| : : already used by : : | ||
| : : another slice, or the : : | ||
| : : topology doesn't match : : | ||
| : : the number of : : | ||
| : : partitions). : : | ||
| GKE is actively | Monitor node |
| : : forming and : provisioning. : | ||
| : : provisioning the TPU : : | ||
| : : slice. : : | ||
| The TPU slice is | Proceed to deploy or |
| : : successfully formed : check workloads. : | ||
| : : and ready to host : : | ||
| : : workloads. : : | ||
| The slice is usable, | Monitor workload logs |
| : : but one or more : for interconnect or : | ||
| : : sub-blocks are : device errors. Check : | ||
| : : degraded. : faulty node VMs. : | ||
| GKE failed to form the | Ensure all selected |
| : : TPU slice (e.g., : nodes belong to the : | ||
| : : selected nodes are not : same reservation block. : | ||
| : : part of the same : : | ||
| : : reservation block). : : | ||
| The slice is | Wait for dismantling to |
| : : dismantling (triggered : finish, or patch : | ||
| : : by user deletion or a : finalizers if stuck. : | ||
| : : critical systemic : : | ||
| : : failure). : : | ||
| The terminal phase | No action required; the |
| : : before the Slice CR is : resource will be : | ||
| : : deleted from the : removed shortly. : | ||
| : : cluster. : : |
SliceCreationFailedFAILEDkubectl get nodes -l cloud.google.com/gke-tpu-slicekubectl get slice -A2x2cloud.google.com/gke-tpu-slice-topology: "{topology}""4x4x4"cloud.google.com/gke-tpu-topology: "{topology}""4x4x4"cloud.google.com/gke-tpu-accelerator: "{accelerator_type}""tpu7x"cloud.google.com/gke-tpu-slice: "{slice_name}""test-slice"alpha.jobset.sigs.k8s.io/exclusive-topology: cloud.google.com/gke-tpu-slicecloud.google.com/gke-tpu-slice-topology: "{topology}"cloud.google.com/gke-tpu-topology: "{topology}"cloud.google.com/gke-tpu-accelerator: "{accelerator_type}"cloud.google.com/gke-tpu-sliceDEACTIVATINGmetadata.finalizers/metadata/finalizerskubectl patch slice {slice_name} --type json -p='[{"op": "remove", "path": "/metadata/finalizers"}]'/metadata/finalizers{slice_name}kubectl get slice -Agcloud container clusters update {cluster_name} \
--location={location} \
--no-enable-slice-controllerkubectl delete crd slices.accelerator.gke.iokubectl label nodes --all cloud.google.com/gke-tpu-slice- cloud.google.com/gke-tpu-slice-topology-