Node Pools¶
Node pools are groups of worker nodes within a Gardener-managed Kubernetes cluster. Each pool uses a single machine type and can scale independently within its configured min/max bounds.
Gardener clusters only
Node pools are a Gardener concept. Generic clusters (registered via kubeconfig) do not expose node pool management through this API — manage their nodes directly through the cluster's own tooling.
Node pool fields¶
Node pools are embedded in the cluster object at node_pools. Each pool has:
| Field | Description |
|---|---|
name | Pool identifier within the cluster |
machine_type | VM flavor for worker nodes (e.g. m1.large) |
min | Minimum node count (cluster autoscaler lower bound) |
max | Maximum node count (cluster autoscaler upper bound) |
current | Current number of nodes in the pool |
status | Pool health status |
Viewing node pools¶
Node pool data is returned as part of the cluster show response:
{
"id": "...",
"kind": "gardener",
"name": "prod-cluster",
"node_pools": [
{
"name": "workers",
"machine_type": "m1.large",
"min": 2,
"max": 10,
"current": 4
}
]
}
Modifying node pools¶
Update node pool configuration via the cluster update endpoint:
PATCH /k8s/clusters/{id}?project_id=<uuid>
Authorization: Bearer <token>
Content-Type: application/json
{
"node_pools": [
{
"name": "workers",
"min": 3,
"max": 15
}
]
}
Gardener applies the change asynchronously. Watch lastOperation on the cluster to track progress.
Machine types¶
Available machine types are listed in the cluster's cloud profile:
The response includes a machineTypes array with each type's vCPU count, memory, storage, and GPU information.
Autoscaling¶
Gardener clusters use the Kubernetes cluster autoscaler. When all nodes in a pool are fully utilized and pods are pending, the autoscaler adds nodes up to max. When utilization drops, it removes nodes down to min. Set min: max to pin the pool at a fixed size and disable autoscaling for that pool.
Related pages¶
- Clusters — create, update, and delete Kubernetes clusters