All Products
Search
Document Center

Container Service for Kubernetes:Enable Node Instant Elasticity

Last Updated:Mar 03, 2026

For large clusters or workloads that demand fast resource delivery, standard node autoscaling may not scale quickly enough. Node Instant Elasticity accelerates node provisioning by triggering ECS instance creation directly when pods are unschedulable, bypassing the traditional autoscaler evaluation cycle.

Prerequisites

Before you begin, make sure that you have:

Important

During scale-in, subscription instances are removed from the cluster but are not released. Use pay-as-you-go instances to avoid unnecessary costs.

Compatibility

ConditionSupported
Node pools with Scaling Mode set to StandardYes
Node pools with Scaling Mode set to SwiftNo
Note

If the ACK GOATScaler component version is earlier than v0.5.3, manually delete offline nodes. See FAQ about Node Instant Elasticity.

Step 1: Enable Node Instant Elasticity

Enable and configure automatic cluster scaling so that the node pool can scale nodes.

  1. Log on to the ACK console. In the left navigation pane, click Clusters.

  2. On the Clusters page, find the target cluster and click its name. In the left navigation pane, choose Nodes > Node Pools.

  3. On the Node Pools page, click Enable next to Node Scaling.

  4. If this is your first time using automatic cluster scaling, follow the on-screen instructions to activate Auto Scaling and grant the required permissions:

    • ACK managed clusters: Grant permissions to the AliyunCSManagedAutoScalerRole role.

    • ACK dedicated clusters: Grant permissions to the KubernetesWorkerRole role and attach the AliyunCSManagedAutoScalerRolePolicy system policy.

    image

  5. On the Node Scaling Configuration page, set Node Scaling Method to Instant Scaling, configure the scaling parameters, and click OK. After configuration, the scaling component automatically triggers a scale-out when pods are unschedulable.

    Note

    To switch from Node Instant Elasticity to Node Autoscaling, read the on-screen messages and follow the instructions. This option is available only to users on the whitelist. To request access, submit a ticket.

Basic scaling parameters

ParameterDescription
Scale-in ThresholdThe ratio of requested resources to node capacity. A node is scaled in only when both CPU and memory utilization fall below this threshold.
GPU Scale-in ThresholdThe same threshold for GPU-accelerated instances. A GPU node is scaled in only when CPU, memory, and GPU utilization all fall below this threshold.
Defer Scale-in ForThe wait time between meeting the scale-in condition and executing the scale-in. Unit: minutes. Default: 10 minutes.

Advanced scaling parameters

ParameterDescription
Pod Termination TimeoutMaximum time to wait for pods on a node to terminate during scale-in. Unit: seconds.
Minimum Number of Replicated PodsMinimum pod count per ReplicaSet before a node can be scaled in. If the actual replica count is less than this value, the node is not scaled in.
Evict DaemonSet PodsWhen enabled, DaemonSet pods on a node are evicted during scale-in.
Skip Nodes Hosting Kube-system PodsWhen enabled, nodes running pods in the kube-system namespace are skipped during scale-in. Does not apply to DaemonSet pods and mirror pods.

Step 2: Configure a node pool for automatic scaling

Node Instant Elasticity scales nodes only in node pools that have automatic scaling enabled. Configure at least one node pool for automatic scaling:

Note

Expand the range of available instance types by configuring multiple instance types, specifying instance attributes, or adding multiple zones. This helps maintain sufficient inventory and avoid scale-out failures.

(Optional) Step 3: Verify the result

Check that automatic scaling is enabled for the node pool

On the Node Pools page, verify that the node pool list shows automatic scaling as enabled.

image

Check that the ACK GOATScaler component is installed

  1. On the Clusters page, find the target cluster and click its name. In the left navigation pane, click Add-ons.

  2. On the Add-ons page, find the ACK GOATScaler component. Its status should be Installed.

Scaling events

Node Instant Elasticity produces the following events. Use them to monitor scaling status.

EventObjectDescription
ProvisionNodepodA node scale-out was triggered successfully.
ProvisionNodeFailedpodA node scale-out failed.
ResetPodpodUnschedulable pods that previously triggered a scale-out are re-added to the scale-out scope.
InstanceInventoryStatusChangedACKNodePoolThe supply status of an instance type in a zone has changed. Format: {InstanceType}/{Zone} inventory status changed from {Old Inventory Status} to {New Inventory Status}. See View the health status of Node Instant Elasticity.

Node and pod identifiers

Node Instant Elasticity maintains the following identifiers on nodes and pods. Do not modify them manually.

Node labels

LabelDescription
goatscaler.io/managed:trueIdentifies nodes managed by Node Instant Elasticity. The component periodically checks whether scale-in conditions are met for these nodes.
k8s.aliyun.com: trueSame as above.
goatscaler.io/provision-task-id:{task-id}Traces the trigger source for node creation.

Node taint

TaintDescription
goatscaler.io/node-terminatingApplied to nodes being scaled in by Node Instant Elasticity.

Pod annotations

AnnotationDescription
goatscaler.io/provision-task-idThe task ID of the node scaled out for this pod. Prevents duplicate scale-out triggers.
goatscaler.io/reschedule-deadlineThe wait period before the pod is re-added to the scale-out scope if it remains unschedulable.

FAQ

For common questions about scale-out behavior, scale-in behavior, custom scaling, and the Node Instant Elasticity component, see FAQ about Node Instant Elasticity.

View the health status of Node Instant Elasticity

Node Instant Elasticity dynamically selects instance types and zones based on Elastic Compute Service (ECS) instance inventory. To monitor inventory health and get optimization suggestions for your node pool configuration, check the node pool inventory health ConfigMap.

For more information, see View the health status of Node Instant Elasticity.

Collect component logs

For ACK managed clusters, collect component logs from the Control Plane Component Logs page:

  1. Log on to the ACK console. In the left navigation pane, click Clusters.

  2. On the Clusters page, find the target cluster and click its name. In the left navigation pane, choose Operations > Log Center.

  3. Click the Control Plane Component Logs tab, click Update Component in the upper-right corner, and then select the Node Instant Elasticity component. After the update, select the Node Instant Elasticity component from the component drop-down list to view its logs.

    image

    image

Upgrade the Node Instant Elasticity component

Upgrade the ACK GOATScaler component regularly to get the latest features and fixes. See Manage components.

Skip inventory check for private pool resources

If you use a private pool to guarantee resource supply, enable SkipInventoryCheck so that Node Instant Elasticity skips the inventory check and directly uses reserved resources during scale-out.

  1. On the Clusters page, find the target cluster and click its name. In the left navigation pane, click Add-ons.

  2. In the Core Components section, find the ACK GOATScaler component and click Configuration.

    Note

    SkipInventoryCheck requires component version v0.3.0-582e405-aliyun or later. Upgrade the component first if needed.

  3. Set SkipInventoryCheck to true.