Skip to main content
A Node Pool is a group of identical bare metal Nodes. Every Node in a Node Pool shares the same plan. A Cluster can have several Node Pools, letting you run different plans side by side (for example CPU and GPU Nodes) and target Workloads at specific Node Pools with Labels and Taints.

Add a Node Pool

1

Open the Node Pools tab

Open your Cluster and go to the Node Pools tab. Click Add Node Pool.
2

Configure the Node Pool

Set:
  • Plan: the bare metal server plan for every Node in the Node Pool.
  • Nodes: how many Nodes to provision (at least 1).
  • Description (optional): a short description of the Node Pool, up to 200 characters.
  • Max Pods per Node (optional): the maximum number of Pods that can run on each Node. See Max Pods per Node.
  • Labels (optional): key-value pairs applied to every Node in the Node Pool.
  • Taints (optional): rules that repel Pods from the Node Pool’s Nodes unless the Pods tolerate them.
3

Add the Node Pool

Click Add Node Pool. The Node Pool provisions its Nodes and joins them to the Cluster.
You can also add multiple Node Pools when you first create a Cluster.

Max Pods per Node

Max Pods per Node sets the maximum number of Pods that can run on each Node in a Node Pool. You set it with the Max Pods per Node field when you create the Node Pool. It’s optional and can’t be changed after the Node Pool is created.
  • Enter a whole number between 16 and 500.
  • Leave it blank to use the default of 110.
The value is shown on the Node Pool’s detail view; a Node Pool left at the default shows 110 (default).

Node Pool status

The Node Pools table shows each pool’s current state. These are separate from the Cluster status.

Scale a Node Pool

Open the Node Pools tab, open the Node Pool’s actions menu, and click Scale. Set the new Node count and confirm. Scaling up provisions and joins new Nodes; scaling down drains and removes Nodes. A Node Pool must always have at least one Node. You can’t scale a Node Pool to 0 Nodes. To remove its capacity entirely, delete the Node Pool instead.
When a Node is removed (scaling down, upgrading a Node Pool, or deleting a Node Pool), LKS drains it first and gives its Pods up to 30 minutes to reschedule elsewhere. If a Pod can’t be evicted within that window, for example because of a misconfigured PodDisruptionBudget, the Node is removed once the 30 minutes elapse.

Rename a Node Pool

You can rename a Node Pool after it’s created. Open the Node Pool’s actions menu and update its Name. This changes the display name only.

Labels and Taints

Labels and Taints steer Workloads to the right Nodes.
  • Labels are key-value pairs applied to every Node in the Node Pool. Use them as nodeSelector or affinity targets. See the Kubernetes guide to Labels and Selectors.
  • Taints repel Pods from the Node Pool’s Nodes unless a Pod tolerates the Taint. Each Taint has a key, an optional value, and an effect: NoSchedule, PreferNoSchedule, or NoExecute. See the Kubernetes guide to Taints and Tolerations.
To change them on an existing Node Pool, open the Node Pool’s actions menu and click Edit Labels & Taints.

Rules

  • A Node Pool can have up to 50 Labels and up to 50 Taints.
  • Keys follow Kubernetes key syntax and may include an optional prefix (prefix/name).
  • A Taint effect must be NoSchedule, PreferNoSchedule, or NoExecute. The same key can appear with different effects, but not twice with the same effect.
  • These key prefixes are reserved and are rejected: kubernetes.io, k8s.io, cluster.x-k8s.io, and lks.latitude.sh, along with their subdomains. Keys without a prefix, such as env or team, are always allowed.
The NoExecute effect evicts running Pods that don’t tolerate the Taint from the Node Pool’s Nodes.
Keep at least one Node Pool, with at least one Node, free of NoExecute Taints. LKS runs critical Pods such as the Cluster’s DNS and load balancing on your Nodes. If every Node Pool carries a NoExecute Taint, these Pods have nowhere to run and the Cluster can lose DNS and LoadBalancer functionality.

Upgrade a Node Pool

A Node Pool runs its own Kubernetes version and can trail the Control Plane by at most one minor version. After you upgrade the Control Plane, upgrade each Node Pool to match. Open the Node Pools tab. When a Node Pool is behind the Cluster version, its row shows Upgrade available. Open the Node Pool’s actions menu and click Upgrade version.
Upgrading a Node Pool recreates its Nodes and can’t be reversed. Run your Workloads with enough replicas to tolerate Nodes being replaced.

Node images and updates

Node operating system images are provided and owned by Latitude.sh. New images reach your Nodes when you upgrade a Node Pool, scale it, or add a new Node Pool. There’s no in-place OS patching for you to run.

Delete a Node Pool

Open the Node Pool’s actions menu and click Delete Node Pool, then confirm.
Deleting a Node Pool destroys its Nodes. Workloads running on them are rescheduled to other Node Pools when capacity is available, or stop if it isn’t.