> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ankra.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kubernetes Nodes

> Inspect a node's health, capacity, placement, GPUs and cached images, and act on it

<Note>
  The node page answers "what is this machine, is it healthy, and what can it run?" in one screen - including the accelerator on a GPU node.
</Note>

## Accessing nodes

Navigate to your cluster and click **Kubernetes → Nodes** in the sidebar, then click a node. The same page is reachable from the cluster overview's node table and the Command Palette (`⌘+K`).

The CLI equivalents are `ankra cluster get nodes` for the list and `ankra cluster describe node <name>` for one node with its events.

***

## The node header

Chips carry state, the fact strip carries identity:

* **Readiness** - `Ready`, `NotReady` or `Unknown` from the kubelet's `Ready` condition, plus **Scheduling disabled** when the node is cordoned.
* **Role** - `Worker`, `Control Plane` or any other `node-role.kubernetes.io/*` label.
* **Accelerator** - on a GPU node, the GPU count and product (`1× NVIDIA H100 80GB HBM3`).
* **Age, instance type, location (provider · region · zone), node group, kubelet version and internal IP.**

Everything that describes the host itself (operating system, kernel, runtime, architecture, addresses) lives in the **Host** card below.

The **⋯ Actions** menu holds cordon, uncordon, drain and delete.

***

## Overview tab

### Stat tiles

One figure per tile, always the **allocatable** amount: **CPU**, **Memory**, **GPU** (only on accelerator nodes), **Storage** and **Pods** - the last one counts the pods placed on the node against its `pods` capacity. Capacity and the kubelet's reservation are in the **Allocatable** card.

### Accelerator

When a node advertises a GPU resource (`nvidia.com/gpu`, an `nvidia.com/mig-*` profile, `amd.com/gpu`, `gpu.intel.com/*`, `habana.ai/gaudi`) or carries NVIDIA GPU Feature Discovery labels, an **Accelerator** card appears under the tiles. On an NVIDIA node it reads the labels the GPU operator stamps on the node:

| Fact                                | Source label                                                                                                                                                                                                          |
| ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Product, family, compute capability | `nvidia.com/gpu.product`, `nvidia.com/gpu.family`, `nvidia.com/gpu.compute.*`                                                                                                                                         |
| GPU count and memory per GPU        | `nvidia.com/gpu.count`, `nvidia.com/gpu.memory`                                                                                                                                                                       |
| CUDA driver and runtime             | `nvidia.com/cuda.driver-version.full`, `nvidia.com/cuda.runtime-version.full` (or the legacy split `cuda.driver.*` / `cuda.runtime.*` labels)                                                                         |
| Sharing                             | `nvidia.com/gpu.sharing-strategy` and `nvidia.com/gpu.replicas` (time-slicing, MPS), `nvidia.com/mig.*` (MIG capability, strategy, active profile and its state), `nvidia.com/mps.capable`, `nvidia.com/vgpu.present` |
| Driver upgrade                      | `nvidia.com/gpu-driver-upgrade-state` and the `nvidia.com/gpu-driver-upgrade-enabled` annotation                                                                                                                      |
| GPU operator components             | every `nvidia.com/gpu.deploy.*=true` label                                                                                                                                                                            |

The card leads with the five facts that decide what can run: GPU count × memory, CUDA driver, CUDA runtime, sharing strategy and (on MIG-capable parts) the MIG configuration. **More details** reveals MPS and vGPU capability, the driver-upgrade state, compute mode, machine type, when discovery last ran, the operator components deployed, and how many GPUs the device plugin currently advertises as allocatable.

A node whose driver is still installing shows **Not advertised yet** - the labels are there but `nvidia.com/gpu` has no allocatable capacity, so nothing can be scheduled on it yet.

#### Live telemetry

With a [Prometheus metrics source](/platform/cluster-metrics) connected, the Accelerator card reads the DCGM exporter the GPU operator ships and shows, per GPU: utilisation, framebuffer in use, temperature, power draw, SM clock, memory bandwidth, the last XID error if there is one, and the pod currently attached to the GPU. A **GPU workloads** list underneath names every pod on the node requesting a GPU resource, linked to its pod page.

The queries match DCGM series on the node's `Hostname` label (the GPU operator sets it from the node name), falling back to `kubernetes_node` and `node` for scrape configurations that relabel it. If Prometheus is connected but has no DCGM series for the node, the card says so rather than showing empty gauges - check that the exporter's ServiceMonitor is being scraped.

### Conditions

One row per kubelet condition: a health dot, the condition, its reason and when it last changed. Pressure conditions (`MemoryPressure`, `DiskPressure`, `PIDPressure`, `NetworkUnavailable`) are healthy when `False` and a **Problem** when `True`; `Ready` is the other way round. Only a condition that needs attention shows its label and the kubelet's message; the card's subtitle says how many do.

### Host

Operating system, architecture, kernel and container runtime, every address the kubelet reports, the pod CIDR(s) and the cloud provider with its instance ID. **Identifiers** reveals the machine ID, system UUID, boot ID and full provider ID with one-click copy.

### Allocatable

Allocatable against capacity for every resource the node reports - CPU, memory, ephemeral storage, pods, huge pages and extended resources such as `nvidia.com/gpu` or MIG profiles - with a bar showing the share the scheduler can actually use.

### Scheduling

Whether the node is cordoned, and its taints with their effect (`NoExecute` is highlighted).

### Labels, annotations and cached images

Three collapsed panels at the end of the page, each with a count in its header:

* **Labels** grouped by prefix (`nvidia.com`, `feature.node.kubernetes.io`, `topology.kubernetes.io`, …). Large groups start collapsed; type in **Search labels** to find a key or value across every group, and click a label to copy `key=value`.
* **Annotations**, with copy and expand for long values.
* **Cached images** - what the kubelet has pulled, largest first, with the total on disk in the header.

***

## Pods tab

Every pod scheduled on the node with phase, readiness, restarts and age, with bulk delete. The tab badge shows the pod count.

***

## Metrics tab

With a Prometheus metrics source connected: CPU, memory, disk and network usage over the selected time range. On a GPU node a **GPU** section follows with utilisation, memory used, power draw and temperature charts per GPU.

Without a metrics source, the tab explains how to connect one.

***

## Manifest tab

The node's full manifest, editable in place.

***

## Related

* [Cluster metrics](/platform/cluster-metrics) - connecting a Prometheus metrics source
* [Kubernetes Workloads](/platform/kubernetes-workloads)
* [Managed Kubernetes](/guides/managed-kubernetes) - node groups on cloud clusters
