Manually scaling a node pool lets you respond to changing workload demands or control costs by setting an explicit target node count. When application resource requirements increase, scale out to add capacity. When demand drops, scale in to reduce spend.
Prerequisites
Before you begin, ensure that you have:
An ACK One registered cluster connected to an external Kubernetes cluster. See Create an ACK One registered cluster
A node pool with a custom script configured. See Create a node pool
How it works
ACK One registered clusters scale node pools by adjusting the Expected Nodes value — the target number of nodes the pool maintains when it reaches steady state.
Scale out: Set Expected Nodes higher than the current count. Auto Scaling creates Elastic Compute Service (ECS) instances, then ACK initializes and adds them to the cluster. If instance creation fails, Auto Scaling retries automatically until the target is reached.
Scale in: Set Expected Nodes lower than the current count. Auto Scaling removes nodes based on the configured scaling policy.
Scaling in by adjusting Expected Nodes removes nodes immediately without draining them first. To drain nodes before removal, use the Remove nodes from a node pool method instead.
Scale-out process
Create ECS instances — Auto Scaling creates ECS instances. The node pool status changes to Expanding, then Activated after instances are created.
Add nodes to the cluster — ACK runs the
cloud-initscript on each new instance to initialize and register the node. Operational logs are saved to/var/log/messageson each node.NoteAfter a node successfully joins the pool, its log entries in
/var/log/messagesare deleted. Only failure logs are retained. If a node fails to join, the log data is synced to the task result and is viewable on the Cluster Tasks tab of the cluster details page.ImportantGPU-accelerated ECS Bare Metal Instance families ebmgn7 and ebmgn7e cannot automatically delete their Multi-Instance GPU (MIG) configuration. When adding these instance types, ACK resets the retained MIG configuration, which can be time-consuming and may cause the instance to fail to join the cluster. See What do I do if I fail to add ECS Bare Metal instances? and the ebmgn7e instance family reference.
Scale-in behavior by scaling policy
| Scaling policy | Node removal behavior |
|---|---|
| Priority | Removes the most recently created ECS instances first |
| Distribution Balancing | Removes the most recently created instances while keeping node counts balanced across zones |
| Cost Optimization | Removes instances in descending order of vCPU price |
Billing during scale-out
Billing is based on the actual instances created. For example, with a node pool configured for two instance types, pay-as-you-go billing, and a Priority scaling policy: if 2 nodes of type A are added in the first-priority vSwitch zone, then 3 nodes of type B are added in the second-priority zone because type A resources are insufficient, the hourly cost is:
(Node A unit price × 2 × 1) + (Node B unit price × 3 × 1)
See Expected number of instances for details on how Auto Scaling manages instance counts.
Scale a node pool
Log in to the ACK console. In the left-side navigation pane, click Clusters.
On the Clusters page, click the name of the target cluster. In the left-side navigation pane, choose Nodes > Node Pools.
Find the node pool to scale, then click Scale in the Actions column.
Set the Expected Nodes value and complete the configuration as prompted.
After you submit, the node pool status in the list changes in sequence. Use the status to track progress:
| Status | Meaning |
|---|---|
| Updating | Configuration change submitted |
| Scaling Out | Adding nodes to the node pool |
| Removing | Removing nodes from the node pool |
| Active | Scaling complete |
If the cluster's security group blocks access to 100.64.0.0/10, new nodes cannot join the cluster.
Limitation on subscription instances
Scale-in does not release subscription ECS instances. To release them, convert the instances to pay-as-you-go billing in the ECS console first, then release them. See Change the billing method from subscription to pay-as-you-go.
What's next
Remove nodes from a node pool — Remove specific nodes with controlled draining
Best practices for nodes and node pools — Deployment sets, preemptible instance-based node pools, and more