
Skill
gke-tpu-dynamic-slices-monitoring
monitor GKE TPU dynamic slices
Description
Monitor and manage GKE TPU Dynamic Slices custom resources. Use when checking slice lifecycle states, troubleshooting failed slice creations (e.g. SliceCreationFailed, FAILED), running single or multi-slice workloads, or safely deleting/disabling slices.
SKILL.md
GKE TPU Dynamic Slices Monitoring & Management
Use this skill to monitor the status of TPU Slice custom resources, troubleshoot provisioning failures, deploy workloads on dynamic slices, and perform cleanups.
⚠️ Prerequisites
- Cloud Logging must be enabled for the project.
-
kubectlandgcloudCLIs must be configured to access the GKE cluster.
🔍 Diagnostic Workflow
Step 0: Context Acquisition & Time Window Definition
To begin monitoring or troubleshooting, acquire the following context from the user:
- Project ID (e.g.,
my-gcp-project) - Cluster Name (e.g.,
tpu-cluster) - Region/Zone (e.g.,
us-central1-a) - Slice Name (e.g.,
test-slice) - Issue Time (Optional, only needed if diagnosing a historical failure; e.g.,
2026-06-25T12:00:00Z)
Time Handling Rules (If Issue Time is provided)
- Reject Relative Time: If the user says "a few minutes ago" or "just now", stop and ask for the exact timestamp.
- Window Calculation: Calculate the query window as
[T - 30m]to[T + 30m].- Let
Start_Time=T - 30m - Let
End_Time=T + 30m
- Let
Step 1: Describe the Slice Custom Resource Low Risk
Check the current state, topology, and conditions of the specified Slice custom resource.
- Tool to use:
run_command - Command:
kubectl describe slice <Slice Name>
State & Reason Analysis
Analyze the Status.Conditions (especially Type: Ready and its Reason and Status):
| Lifecycle State / Reason | Meaning | Recommended Action |
|---|---|---|
SliceNotCreated | GKE Slice Controller is initializing the slice and performing resource checks. | Auto Wait a few minutes and run the command again. |
SliceCreationFailed | Prerequisites validation failed (e.g., selected nodes don't exist, nodes are already used by another slice, or the topology doesn't match the number of partitions). | Manual Verify that the selected nodes exist, are not already in use by another slice, and that the topology matches the partition count. |
ACTIVATING | GKE is actively forming and provisioning the TPU slice. | Auto Wait and monitor node provisioning. |
ACTIVE | The TPU slice is successfully formed and ready to host workloads. | Auto Proceed to deploy or check workloads. |
ACTIVE_DEGRADED | The slice is usable, but one or more sub-blocks are degraded. | Manual Monitor workload logs closely for interconnect or device errors. Check for faulty node/host VMs. |
FAILED | GKE failed to form the TPU slice (e.g., selected nodes are not part of the same reservation block, or are not in the same reservation). | Manual Ensure all selected nodes belong to the same reservation and reservation block. |
DEACTIVATING | The slice is dismantling (either triggered by user deletion or a critical systemic failure). | Auto Wait for dismantling to finish, or patch finalizers if it gets stuck (see Resolution 1). |
INCOMPLETE | The terminal phase before the Slice CR is deleted from the cluster. | Auto No action required; the resource will be removed shortly. |
Step 2: Verify Workload Specification Low Risk
Ensure the user's workload manifests are configured correctly to target the dynamic slice.
1. Single-Slice Workload Requirements
Check that the Pod template contains the following annotations and selectors:
- Annotations:
cloud.google.com/gke-tpu-slice-topology: "<Topology>"(e.g.,"4x4x4")
- NodeSelector:
cloud.google.com/gke-tpu-topology: "<Topology>"(e.g.,"4x4x4")cloud.google.com/gke-tpu-accelerator: "<Accelerator Type>"(e.g.,"tpu7x")cloud.google.com/gke-tpu-slice: "<Slice Name>"(e.g.,"test-slice")
2. Multi-Slice (JobSet) Workload Requirements
If deploying a multi-slice JobSet, verify:
- JobSet Annotation:
alpha.jobset.sigs.k8s.io/exclusive-topology: cloud.google.com/gke-tpu-slice
- Pod Template Annotations:
cloud.google.com/gke-tpu-slice-topology: "<Topology>"
- Pod Template NodeSelector:
cloud.google.com/gke-tpu-topology: "<Topology>"cloud.google.com/gke-tpu-accelerator: "<Accelerator Type>"- Note: Do NOT manually specify
cloud.google.com/gke-tpu-slicein the nodeSelector; JobSet handles slice assignment automatically.
🛠️ Resolution & Management Workflow
Resolution 1: Force Delete a Stuck Slice High Risk
If a slice is stuck in DEACTIVATING or deletion hangs indefinitely (often due to finalizers awaiting resource cleanup), patch the resource to remove finalizers.
- Tool to use:
run_command - Command:
kubectl patch slice <Slice Name> --type json -p='[{"op": "remove", "path": "/metadata/finalizers"}]' - Automation: Stop and ask for explicit user confirmation before executing this patch.
Resolution 2: Disable and Clean Up Slice Controller High Risk
If the user needs to completely disable dynamic slicing and the GKE Slice Controller:
- Check for existing Slices:
Ensure all slices are deleted before disabling the controller.
kubectl get slice -A - Disable Slice Controller via gcloud:
gcloud container clusters update <Cluster Name> \ --location=<Region/Zone> \ --no-enable-slice-controller - Delete the Slice CRD:
kubectl delete crd slices.accelerator.gke.io - Clean up Node Labels:
Remove GKE TPU Slice labels from all nodes in the cluster:
kubectl label nodes --all cloud.google.com/gke-tpu-slice- cloud.google.com/gke-tpu-slice-topology-
- Automation: Stop and ask for explicit user confirmation before executing any disabling or destructive cleanup commands.
📋 Copypaste Checklist
- Acquire project context and slice names.
- Inspect slice status via
kubectl describe slice. - Inspect Kubernetes events and GKE control plane logs for errors.
- Validate workload manifest annotations and nodeSelectors.
- If deletion hangs, patch finalizers (requires user approval).
- If decommissioning, follow the full Slice Controller disabling sequence.
More skills from the gke-mcp repository
View all 25 skillscustom-golden-image-discovery
discover golden base images for GKE nodes
Jul 12DeploymentGoogle CloudKubernetesgke-ai-troubleshooting-handle-disruption-gpu-tpu
diagnose GPU and TPU workload disruptions
Jul 24DebuggingGoogle CloudKubernetesPerformancegke-ai-troubleshooting-jobset-interruption
diagnose GKE JobSet interruptions
Jul 12DebuggingGoogle CloudKubernetesObservabilitygke-ai-troubleshooting-skill-creation-guide
create GKE troubleshooting skill bundles
Jul 12DocumentationEngineeringGoogle CloudTechnical Writinggke-ai-troubleshooting-tpu-connection-failure-vbar-oom
diagnose GKE TPU connection failures
Jul 12DebuggingGoogle CloudKubernetesPerformancegke-app-onboarding
containerize and deploy apps to GKE
Jul 12ContainersDeploymentGoogle CloudKubernetes +1
More from Google Cloud
View publisherkb-search
search and extract local knowledge base documents
knowledge-catalog
Jul 12DocumentationKnowledge BaseSearchknowledge_catalog_discovery_agent
search and rank Knowledge Catalog data entries
knowledge-catalog
Jul 12Data AnalysisGoogle CloudKnowledge ManagementSearchfabric-builder
generate Terraform code for Google Cloud
cloud-foundation-fabric
Jul 12Google CloudInfrastructure as CodeTerraformfast-0-org-setup-prereqs
prepare prerequisites for FAST 0-org-setup
cloud-foundation-fabric
Jul 12Google CloudOperationsagent-aware-cli
design agent-aware command-line interfaces
vertex-ai-creative-studio
Jul 12CLIEngineeringGoogle Cloudbuild-mcp-genmedia
build and configure GenAI MCP servers
vertex-ai-creative-studio
Jul 12API DevelopmentGoogle CloudLLMMCP