Skip to content

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:

GET /k8s/clusters/{id}?project_id=<uuid>
Authorization: Bearer <token>
{
  "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:

GET /k8s/cloudprofiles/{id}
Authorization: Bearer <token>

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.

  • Clusters — create, update, and delete Kubernetes clusters