The kube-scheduler is a control plane component. It schedules pods to suitable nodes in a cluster based on resource requirements.
Introduction to kube-scheduler
kube-scheduler assigns each pod to a suitable virtual node in an ACS cluster based on pod requirements, node resources, and other properties. For background, see the Kubernetes documentation on kube-scheduler.
Starting from Kubernetes 1.32, the versioning rules for the scheduler in ACS are consistent with those for ACK. For more information, see kube-scheduler.
How it works
kube-scheduler processes pods in a scheduling queue. For each pod, it identifies candidate nodes and selects the best fit using a two-phase pipeline:
Filter — each filter plugin eliminates nodes that cannot run the pod (for example, nodes with insufficient CPU or memory).
Score — each scoring plugin assigns a score to each remaining node. The final node score is the sum of
plugin_score × plugin_weightacross all active scoring plugins. The pod is bound to the highest-scoring node.
ACS automatically filters out zones with high resource usage during scheduling. This zone filtering happens in the filter phase and is not affected by scoring plugin weights.
Usage notes
kube-scheduler is installed by default when you create a cluster. For a full list of supported scheduling features, see Scheduling overview.
Configure kube-scheduler
Configure custom parameters for kube-scheduler from the ACS console.
Log on to the ACS console. In the left-side navigation pane, click Clusters.
On the Clusters page, find the target cluster and click its ID. In the left navigation pane, choose Operations > Add-ons.
On the Core Components tab, find the Kube Scheduler component. Click Configuration in the lower-right corner of the card.
In the dialog box that appears, configure the parameters described below, then save your changes.
Different scheduler versions support different features and custom parameters. For version-specific feature details, see kube-scheduler.
Parameters
| Parameter | Description | Type | Value | Default |
|---|---|---|---|---|
| Enable Zone Recommendation | ACS automatically filters out zones with high resource usage during scheduling. For more information, see Resource recommendation feature. | Boolean | true / false | true |
| Enable custom labels and schedulers for GPU-HPN nodes | Enables custom labels and custom schedulers for GPU-HPN nodes. For more information, see Use a custom scheduler. To manage node labels and taints, see Manage node labels and taints. | Boolean | true / false | false |
| scorePluginWeights | Custom weight parameters for scoring plugins. See scorePluginWeights below. | Object | See below | See below |
scorePluginWeights
scorePluginWeights lets you adjust the relative influence of each scoring plugin. The final node score is the sum of plugin_score × plugin_weight across all active plugins, so a higher weight gives a plugin proportionally more influence over the scheduling outcome.
Supported plugins:
Community plugins:
NodeAffinity,PodTopologySpread,InnerPodAffinity,TaintToleration. For details on affinity policies, see the Kubernetes documentation on assigning pods to nodes. For toleration policies, see the Kubernetes documentation on taints and tolerations.Alibaba Cloud proprietary plugins:
ServerlessScheduling— for general-purpose, performance, and GPU compute classes, this plugin prioritizes zones with more available platform resources based on resource recommendations.
Default weights:
| Plugin | Default weight |
|---|---|
NodeAffinity | 1 |
PodTopologySpread | 1 |
InnerPodAffinity | 1 |
TaintToleration | 1 |
ServerlessScheduling | 2 |
Parameter format:
| Field | Type | Value range |
|---|---|---|
plugin | string | Any plugin from the supported plugin list |
weight | int | 1–10,000 |
ACS automatically filters out zones with high resource usage during scheduling. This filtering happens before scoring and is not affected by scorePluginWeights. When using affinity-related scoring policies, select multiple recommended zones for the pod to make sure the scoring policies take effect. For more information, see Resource recommendation feature.
Change history
Version 1.32
| Version | Change time | Description |
|---|---|---|
| v1.32.0-aliyun.6.9.7.eb18a8a9 | September 22, 2025 | Bug fix: Fixed an issue where pod scheduling was stuck in the Pending state when strong pod anti-affinity and topology spread constraints were used. This issue was introduced in v1.32.0-aliyun.6.9.6.4e1407c2. |
| v1.32.0-aliyun.6.9.6.4e1407c2 | September 17, 2025 | New feature: Added a switch to enable or disable the zone resource recommendation feature. Optimization: Improved scheduling retry efficiency for pods that use PersistentVolumeClaims (PVCs). Optimized the PodTopologySpread policy: when whenUnsatisfiable is set to ScheduleAnyway, pods being created are now included in the topology distribution calculation. |
| v1.32.0-aliyun.6.9.5.ccfc0094 | July 09, 2025 | Initial release for ACS cluster version 1.32. Includes all features from v1.31.0-aliyun-1.4.2. |
Version 1.31
| Version | Change time | Description |
|---|---|---|
| v1.31.0-aliyun-1.4.4 | September 22, 2025 | Bug fix: Fixed an issue where pod scheduling was stuck in the Pending state when strong pod anti-affinity and topology spread constraints were used. This issue was introduced in v1.31.0-aliyun-1.4.3. |
| v1.31.0-aliyun-1.4.3 | September 17, 2025 | New feature: Added a switch to enable or disable the zone resource recommendation feature. Optimization: Improved scheduling retry efficiency for pods that use PVCs. Optimized the PodTopologySpread policy: when whenUnsatisfiable is set to ScheduleAnyway, pods being created are now included in the topology distribution calculation. |
| v1.31.0-aliyun-1.4.2 | July 09, 2025 | Optimized internal log printing and base image. |
| v1.31.0-aliyun-1.4.1 | May 19, 2025 | Added support for configuring custom weight parameters for scoring plugins (scorePluginWeights). |
| v1.31.0-aliyun-1.4.0 | April 09, 2025 | Optimized the scheduling flow for pods that use WaitForFirstConsumer (WFFC) PVCs. When a pod uses a WFFC PVC and specifies a vSwitch, also specify the corresponding zone in the pod's affinity settings. The scheduler ensures the zone assigned to the PVC matches the vSwitch to prevent the pod from getting stuck in the Pending state. For more information, see Pod Annotation features. |
| v1.31.0-aliyun-1.3.1 | March 20, 2025 | GPU sharing and scheduling now supports the static policy and QoS configuration. Improved fault tolerance for invalid configurations in custom priority scheduling. |
| v1.31.0-aliyun-1.3.0 | February 08, 2025 | Fixed a disk scheduling issue for pods that use WaitForFirstConsumer PVCs. Added support for configuring custom schedulers for GPU-HPN pods. |
| v1.31.0-aliyun-1.2.0 | November 29, 2024 | Initial release for ACS cluster version 1.31. |
Version 1.30
| Version | Change time | Description |
|---|---|---|
| v1.30.3-aliyun-1.4.4 | September 22, 2025 | Bug fix: Fixed an issue where pod scheduling was stuck in the Pending state when strong pod anti-affinity and topology spread constraints were used. This issue was introduced in v1.30.3-aliyun-1.4.3. |
| v1.30.3-aliyun-1.4.3 | September 17, 2025 | New feature: Added a switch to enable or disable the zone resource recommendation feature. Optimization: Improved scheduling retry efficiency for pods that use PVCs. Optimized the PodTopologySpread policy: when whenUnsatisfiable is set to ScheduleAnyway, pods being created are now included in the topology distribution calculation. |
| v1.30.3-aliyun-1.4.2 | July 09, 2025 | Optimized internal log printing and base image. |
| v1.30.3-aliyun-1.4.1 | May 19, 2025 | Added support for configuring custom weight parameters for scoring plugins (scorePluginWeights). |
| v1.30.3-aliyun-1.4.0 | April 09, 2025 | Optimized the scheduling flow for pods that use WFFC PVCs. When a pod uses a WFFC PVC and specifies a vSwitch, also specify the corresponding zone in the pod's affinity settings. The scheduler ensures the zone assigned to the PVC matches the vSwitch to prevent the pod from getting stuck in the Pending state. For more information, see Pod Annotation features. |
| v1.30.3-aliyun-1.3.1 | March 20, 2025 | GPU sharing and scheduling now supports the static policy and QoS configuration. Improved fault tolerance for invalid configurations in custom priority scheduling. |
| v1.30.3-aliyun-1.3.0 | February 08, 2025 | Fixed a disk scheduling issue for pods that use waitForFirstConsumer PVCs. Added support for configuring custom schedulers for GPU-HPN pods. |
| v1.30.3-aliyun-1.2.0 | November 29, 2024 | Optimized pod scheduling efficiency. The acs-virtual-node component must be version v2.12.0-acs.9 or later. |
| v1.30.3-aliyun-1.1.1 | September 09, 2024 | Initial release for ACS cluster version 1.30. |
Version 1.28
| Version | Change time | Description |
|---|---|---|
| v1.28.12-aliyun-1.4.4 | September 22, 2025 | Bug fix: Fixed an issue where pod scheduling was stuck in the Pending state when strong pod anti-affinity and topology spread constraints were used. This issue was introduced in v1.28.12-aliyun-1.4.3. |
| v1.28.12-aliyun-1.4.3 | September 17, 2025 | New feature: Added a switch to enable or disable the zone resource recommendation feature. Optimization: Improved scheduling retry efficiency for pods that use PVCs. Optimized the PodTopologySpread policy: when whenUnsatisfiable is set to ScheduleAnyway, pods being created are now included in the topology distribution calculation. |
| v1.28.12-aliyun-1.4.2 | July 09, 2025 | Optimized internal log printing and base image. |
| v1.28.12-aliyun-1.4.1 | May 19, 2025 | Added support for configuring custom weight parameters for scoring plugins (scorePluginWeights). |
| v1.28.12-aliyun-1.4.0 | April 09, 2025 | Optimized the scheduling flow for pods that use WFFC PVCs. When a pod uses a WFFC PVC and specifies a vSwitch, also specify the corresponding zone in the pod's affinity settings. The scheduler ensures the zone assigned to the PVC matches the vSwitch to prevent the pod from getting stuck in the Pending state. For more information, see Pod Annotation features. |
| v1.28.9-aliyun-1.3.1 | March 20, 2025 | GPU sharing and scheduling now supports the static policy and QoS configuration. Improved fault tolerance for invalid configurations in custom priority scheduling. |
| v1.28.9-aliyun-1.3.0 | February 08, 2025 | Fixed a disk scheduling issue for pods that use waitForFirstConsumer PVCs. Added support for configuring custom schedulers for GPU-HPN pods. |
| v1.28.9-aliyun-1.2.0 | November 29, 2024 | Optimized pod scheduling efficiency. The acs-virtual-node component must be version v2.12.0-acs.9 or later. |
| v1.28.9-aliyun-1.1.1 | September 06, 2024 | Optimized event notification messages. |
| v1.28.9-aliyun-1.1.0 | August 22, 2024 | Added support for custom resource priority scheduling. |
| v1.28.9-aliyun-1.0.1.dfd9511f | July 12, 2024 | Optimized internal interfaces. |
| v1.28.9-aliyun-1.0.0b72f000 | June 15, 2024 | Initial release for ACS cluster version 1.28. |
Version 1.26
| Version | Change time | Description |
|---|---|---|
| v1.26.3-aliyun-1.3.1 | March 20, 2025 | GPU sharing and scheduling now supports the static policy and QoS configuration. Improved fault tolerance for invalid configurations in custom priority scheduling. |
| v1.26.3-aliyun-1.3.0 | February 08, 2025 | Fixed a disk scheduling issue for pods that use waitForFirstConsumer PVCs. Added support for configuring custom schedulers for GPU-HPN pods. |
| v1.26.3-aliyun-1.2.0 | November 29, 2024 | Optimized pod scheduling efficiency. The acs-virtual-node component must be version v2.12.0-acs.9 or later. |
| v1.26.3-aliyun-1.1.1 | September 06, 2024 | Optimized event notification messages. |
| v1.26.3-aliyun-1.1.0 | August 22, 2024 | Added support for custom resource priority scheduling. |
| v1.26.3-aliyun-1.0.1.4d326e78 | July 12, 2024 | Optimized internal interfaces. |
| v1.26.3-aliyun-1.0.fa88f9ae | June 25, 2024 | Initial release for ACS cluster version 1.26. |