When a node pool runs out of a specific instance type in a zone, scaling requests fail silently. The node instant scaling add-on monitors inventory levels across all configured zones and writes real-time status to a ConfigMap in the kube-system namespace. Check this ConfigMap to catch low-stock conditions before they block scale-out.
Two signals are available:
Signal | Name | When to use |
ConfigMap |
| Ongoing monitoring and proactive instance type adjustments — continuously updated. |
Event |
| Reacting to inventory shifts as they happen — fired each time supply status changes for an instance type in a zone. |
Prerequisites
Before you begin, make sure you have:
A node pool with auto scaling enabled and node instant scaling turned on. See Enable Node Instant Elasticity.
Node instant scaling add-on version 0.2.1 or later. To upgrade, see Manage add-ons.
How it works
After you enable instant scaling for a node pool, the node instant scaling add-on:
Retrieves all instance types configured for the node pool.
Polls real-time inventory status for each instance type in each configured zone.
Writes the results to a ConfigMap named
{node pool id}-inventory-statusin thekube-systemnamespace.
When supply status changes for any instance type in a configured zone, the add-on also emits an InstanceInventoryStatusChanged event on the ACKNodePool object, in the format:
{InstanceType}/{Zone} inventory status changed from {OldInventoryStatus} to {NewInventoryStatus}Check inventory health status
Log on to the ACK console. In the left navigation pane, click Clusters.
On the Clusters page, click the name of the cluster.
In the left-side navigation pane, choose Configurations > ConfigMaps.
In the Namespace drop-down list, select kube-system. Find the ConfigMap named
{node pool id}-inventory-status.View the
data.statusfield for real-time inventory health.
Understand the ConfigMap fields
The data.status field contains a JSON object. The examples below show a healthy and a degraded inventory state side by side so you can identify anomalies quickly.
Example: healthy inventory
{
"SupplySeqs": [
{
"InstanceType": "ecs.g6.8xlarge",
"Zone": "cn-hongkong-c",
"State": "WithStock"
},
{
"InstanceType": "ecs.g6.8xlarge",
"Zone": "cn-hongkong-b",
"State": "WithStock"
},
{
"InstanceType": "ecs.g5ne.4xlarge",
"Zone": "cn-hongkong-c",
"State": "WithStock"
},
{
"InstanceType": "ecs.g5ne.4xlarge",
"Zone": "cn-hongkong-b",
"State": "WithStock"
}
],
"Conditions": [
{
"Type": "InventoryNoStock",
"Status": "False",
"Reason": "NoInterruption",
"Message": "all instanceTypes are with stock",
"LastTransitionTime": "2024-08-01T08:20:49Z"
}
],
"Phase": "Healthy",
"LastTransitionTime": "2024-08-01T08:20:49Z"
}Example: degraded inventory
{
"SupplySeqs": [
{
"InstanceType": "ecs.g6.8xlarge",
"Zone": "cn-hongkong-c",
"State": "WithoutStock"
},
{
"InstanceType": "ecs.g6.8xlarge",
"Zone": "cn-hongkong-b",
"State": "WithStock"
},
{
"InstanceType": "ecs.g5ne.4xlarge",
"Zone": "cn-hongkong-c",
"State": "ClosedWithoutStock"
},
{
"InstanceType": "ecs.g5ne.4xlarge",
"Zone": "cn-hongkong-b",
"State": "WithStock"
}
],
"Conditions": [
{
"Type": "InventoryNoStock",
"Status": "True",
"Reason": "PartialInterruption",
"Message": "some instanceTypes are out of stock",
"LastTransitionTime": "2024-08-01T09:15:00Z"
}
],
"Phase": "UnHealthy",
"LastTransitionTime": "2024-08-01T09:15:00Z"
}SupplySeqs fields
Field | Description |
| The name of the instance type. |
| The zone where the instance type resides. |
| Inventory status of the instance type in the zone. See the table below for valid values. |
`State` values
Value | Meaning | Action |
| Resources are in sufficient stock. | No action needed. |
| Resources are low on stock and may not be available for purchase. | We recommend that you use instance types with |
| Resources are out of stock and will be replenished. | We recommend that you use instance types with |
| Resources are out of stock and will not be replenished. | We recommend that you use instance types with |
Conditions fields
Field | Description |
| Only one type is specified in this field ( |
| Whether any instance type is out of stock. |
| Overall inventory health reason. |
| Detailed description of the current condition. |
| Timestamp of the most recent change to the |
Top-level fields
Field | Description |
| Overall inventory health. |
| Timestamp of the most recent change to the |
What's next
View pod and node details and scaling activity history on the node scaling dashboard. See Node scaling dashboard.