LogoTensorFusion Docs
LogoTensorFusion Docs
Homepage

Getting Started

OverviewKubernetes InstallVM/Server Install(K3S)Helm Quick InstallHost/GuestVM InstallTensorFusion Architecture

Application Operations

Create WorkloadAnnotation Usage ScenariosConfigure AutoScalingMigrate Existing WorkloadBest Practices

Customize AI Infra

Production-Grade DeploymentConfig QoS and BillingBring Your Own CloudManaging License

Maintenance & Optimization

Upgrade ComponentsSetup AlertsGPU Live MigrationPreload ModelOptimize GPU Efficiency

Troubleshooting

HandbookTracing/ProfilingQuery Metrics & Logs

Reference

Helm Install Values
Kubernetes EventsTensorFusion Metrics ReferenceBenchmark TestingCommand Line ReferenceGPU/Driver/OS Support MatrixTensorFusion Security Whitepaper

Comparison

Compare with NVIDIA vGPUCompare with MIG/MPSCompare with NVIDIA Run:aiCompare with HAMi
For System Admins

Kubernetes Events

TensorFusion records Kubernetes events on the objects it manages: Pods, GPUPool, GPUNode, TensorFusionWorkload and TensorFusionConnection. This page lists every event reason, its type, and what it means, so you can tell at a glance why a Pod is pending or why a node was added or removed.

View events

Events are attached to the object they describe. Pass the object kind and name to kubectl:

# Events of one Pod
kubectl describe pod <pod-name> -n <namespace>

# Events of a GPUPool (cluster-scoped)
kubectl events --for gpupool/<pool-name>

# All warnings in a namespace, newest last
kubectl get events -n <namespace> --field-selector type=Warning --sort-by=.lastTimestamp

Kubernetes keeps events for one hour by default. For longer history, collect them with your logging stack.

Pod events

Scheduling and GPU allocation

ReasonTypeMeaning
PreScheduleDoneNormalThe scheduler found GPU nodes that fit the Pod and reserved resources. The message gives the number of candidate nodes.
GPUDeviceAllocatedNormalThe GPU device IDs were written to the Pod. The Pod is about to be bound to its node.
PodIndexAllocationPendingNormalThe Pod's device index is still held by another Pod on the same node. It is patched in once that Pod releases it.
ScheduleWithNativeGPUNormalThe Pod is not managed by TensorFusion and was scheduled with native GPU resources. Appears only during progressive migration from the NVIDIA device plugin.
GPUQuotaOrCapacityNotEnoughWarningNo GPU has enough free TFLOPS or VRAM, or the namespace's GPUResourceQuota is exhausted. The message contains the detailed reason.
PartitionTemplateMatchFailedWarningIn partitioned isolation mode, no partition template matches the requested resources.
GPUDeviceAllocatedFailedWarningThe scheduler picked GPUs but could not write the device IDs to the Pod.
ContainerGPUAllocationFailedWarningThe scheduler could not map the allocated GPUs to the Pod's containers.
CommitFailedWarningThe GPU allocation could not be committed after retries. This scheduling attempt fails and the scheduler retries the Pod.

GPU topology

ReasonTypeMeaning
GPUInterconnectTopologyFallbackNormalTopology data is incomplete on some nodes. The scheduler fell back to NUMA-level or unknown topology for them.
GPUInterconnectTopologyUnsatisfiedWarningThe Pod requires a GPU topology in hard mode and no node satisfies it.

Gang scheduling

ReasonTypeMeaning
GangWaitingForMembersNormalThe Pod passed scheduling and is waiting for the rest of its group. The message shows ready/required.
GangScheduledNormalEnough members are ready and the group is scheduled together.
GangSchedulingTimeoutWarningThe group did not reach its required member count before the timeout. The message shows how many members were ready.
GangStrictRejectedWarningOne member could not be scheduled, so the whole group was rejected (strict mode).

Node expansion

These events appear on a pending Pod when the controller runs with -enable-auto-expander.

ReasonTypeMeaning
NodeExpansionCheckNormal or WarningResult of checking whether a new node would help. The message says which case applies: the Pod fits existing or in-flight capacity, expansion is delegated to Karpenter, the failure is not GPU-related, no GPU node can host the Pod, or the Pod is still unscheduled 10 minutes after expansion.
NodeExpansionCompletedNormalA GPUNodeClaim or Karpenter NodeClaim was created for the Pod.
NodeExpansionFailedWarningNo node type can fit the Pod, or creating the node claim failed.
NodeExpansionCandidateFailedWarningA Karpenter NodeClaim failed for lack of cloud capacity. The expander tries the next preference.
NodeExpansionCandidatesExhaustedWarningEvery expansion preference failed. The Pod waits for the next scheduling attempt.

GPUPool events

Capacity

ReasonTypeMeaning
ManagedNodeCreatedNormalA cloud instance was created for the pool. The message contains the instance ID and private IP.
CompactionNormalA node is empty and removing it keeps the pool's warm-up capacity, so the pool is terminating it.
MaxResourceConstraintReachedWarningThe pool reached capacityConfig.maxResources and cannot scale up.

Defragmentation

Recorded when node compaction has defragmentation enabled.

ReasonTypeMeaning
DefragStartedNormalA defragmentation round started.
DefragPodEvictedNormalA Pod was evicted from a source node so it can be rescheduled onto a fuller node.
DefragFinishedNormalThe round finished. The message summarizes candidate nodes, evicted Pods, failures and skips.
DefragSkipUnschedulableNormalA node was skipped because its Pods would not fit elsewhere.
DefragSkipPDBBlockedNormalA node was skipped because a PodDisruptionBudget does not allow the eviction now.
DefragBlockedBySourceNodeNormalThe round is paused: a node from an earlier round is still draining.
DefragBlockedByEvictedPodNormalThe round is paused: a Pod evicted earlier has not been rescheduled yet.
DefragSkipMissingPDBWarningA node was skipped because one of its Pods has no PodDisruptionBudget. Add a PDB to let defragmentation move it.
DefragPodEvictFailedWarningEvicting a Pod, or marking the node as a defragmentation source, failed.
DefragNodeEvictSkipWarningAfter an eviction failure the node was added to the evict-skip list, so later rounds pass over it.
DefragAbortNodeWarningDefragmentation of a node was aborted, for example because the scheduling simulation returned an error.
DefragConfigInvalidWarningThe defragmentation settings are invalid. Defragmentation is disabled until they are fixed.

GPUNode events

ReasonTypeObjectMeaning
HypervisorCrashLoopRecreateWarningGPUNodeThe hypervisor container restarted more times than dynamicConfig.hypervisorMaxCrashCount (default 5). The controller deleted the Pod to recreate it.
DriverProbeFailedWarningJobThe driver probe Job for a node failed all its retries. Check the GPU driver on that node.

TensorFusionWorkload events

ReasonTypeMeaning
ResourceScaledUpNormalThe autoscaler raised the workers' TFLOPS or VRAM. The message shows the old and new values.
ResourceScaledDownNormalThe autoscaler lowered the workers' TFLOPS or VRAM.

TensorFusionConnection events

ReasonTypeMeaning
WorkerSelectedNormalA worker was chosen for the connection.
ConnectionReadyNormalThe worker is running. The message contains the connection URL.
WorkerSelectionFailedWarningNo worker could be selected for the connection.

Next steps

  • Troubleshooting handbook maps common symptoms to fixes.
  • Metrics reference lists the counters behind these events, such as total_allocation_fail_cnt.

GPUResourceQuota

GPUResourceQuota is the Schema for the gpuresourcequotas API

TensorFusion Metrics Reference

Next

Table of Contents

View events
Pod events
Scheduling and GPU allocation
GPU topology
Gang scheduling
Node expansion
GPUPool events
Capacity
Defragmentation
GPUNode events
TensorFusionWorkload events
TensorFusionConnection events
Next steps