Node Pool modes
Every Node Pool has a mode. You set it when you create the Node Pool, and it can’t be changed afterward.- On-demand (default): LKS provisions new Servers from a plan.
- Allocated: LKS runs the Node Pool on bare metal Servers you already have in the Cluster’s project. Each Server is reinstalled with the Node image and joins the Cluster.
A Cluster can mix both modes. For example, an allocated Node Pool with Servers you already run and an on-demand Node Pool for extra capacity.
Server requirements for Allocated mode
A Server can join an allocated Node Pool when it:- Is a bare metal Server in the Cluster’s project and location.
- Was deployed as a BGP-ready Server. This is set when the Server is deployed and can’t be turned on afterward.
- Isn’t bonded onto a public network and has no Firewall assigned.
- Isn’t locked, scheduled for deletion, in rescue mode, or still being deployed or reinstalled.
- Isn’t already in a Node Pool of any Cluster.
Why a Server can’t join
When a Server can’t join, the picker or the error message shows one of these reasons: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
Choose a mode
Under Mode, keep On-demand to provision new Servers, or select Allocated to use Servers you already have. See Node Pool modes.
3
Choose the Nodes
- On-demand: choose a Plan for every Node in the Node Pool, and how many Nodes to provision (at least 1).
- Allocated: under Servers, select at least one Server. The list shows the project’s Servers at the Cluster’s location that meet the Server requirements.
4
Configure the Node Pool
Set:
- 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.
5
Add the Node Pool
Click Add Node Pool. An on-demand Node Pool provisions its Nodes; an allocated Node Pool reinstalls its Servers with the Node image. The Nodes then join the 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.
110 (default).
Node Pool status
The Node Pools table shows each pool’s current state. These are separate from the Cluster status.Scale an On-demand 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.
Scale an Allocated Node Pool
Allocated Node Pools scale by their Servers, not by a count. Open the Node Pools tab, open the Node Pool’s actions menu, and click Manage servers. Select the Servers to add, clear the ones to remove, and click Save changes. The Node Pool shows Scaling while the changes are applied.- Added Servers are reinstalled with the Node image and join the Cluster.
- Removed Servers are drained and returned to your project. See When a Server leaves an Allocated Node Pool.
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
nodeSelectoror 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, orNoExecute. See the Kubernetes guide to Taints and Tolerations.
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, orNoExecute. 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, andlks.latitude.sh, along with their subdomains. Keys without a prefix, such asenvorteam, are always allowed.
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. An allocated Node Pool gets no new Servers during an upgrade. LKS drains and reinstalls each Server in place, one at a time, so one Node at a time is out of service. A Node Pool with a single Server has no capacity while it upgrades; run at least two Servers to keep Workloads running.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 an allocated Node Pool doesn’t destroy its Servers. Each one is drained and returned to your project. See When a Server leaves an Allocated Node Pool.Servers in Node Pools
While a Server is a Node
Every Node runs on a bare metal Server in the Cluster’s project. LKS manages the Server while it’s a Node, so these actions are blocked until it leaves its Node Pool:- Delete or schedule deletion.
- Reinstall or rescue mode.
- Power off.
- Lock.
- Change the hostname.
- Move to another project.
- Switch to yearly billing.
Find the Server behind a Node
On the Node Pools tab, expand a Node Pool’s row or switch to Nodes to list the Nodes. Click a Node to open Node details, which shows its Server. Click View server to open the Server.When a Server leaves an Allocated Node Pool
A Server leaves an allocated Node Pool when you remove it with Manage servers, delete its Node Pool, or delete the Cluster. In each case, LKS:- Drains the Node, giving its Pods up to 30 minutes to reschedule elsewhere.
- Reinstalls the Server with Ubuntu 24.04, with no SSH keys or user data and a hostname based on its Server ID.
- Returns the Server to your project.