Introduction
Modern Kubernetes platforms demand elasticity, efficiency, and operational simplicity. As workloads grow and shrink dynamically, static worker node sizing often leads to one of two problems:
- Overprovisioning → Higher infrastructure cost
- Underprovisioning → Pending pods and degraded application performance
This is where the Cluster Autoscaler becomes a critical add-on for VMware Kubernetes Service (VKS) clusters.
In this blog, we’ll explore how to deploy, manage, validate, and operate the Cluster Autoscaler Add-on on VKS clusters in a production-ready way.
What is Cluster Autoscaler?
Cluster Autoscaler is an official Kubernetes component that automatically adjusts the number of worker nodes in a cluster.
It performs:
- Scale Up: When pods remain in a Pending state due to insufficient CPU / Memory.
- Scale Down: When nodes remain underutilized for a configurable duration.
Why Use Cluster Autoscaler on VKS?
When running enterprise workloads on VKS, Cluster Autoscaler provides major operational benefits:
| Feature | Benefit |
|---|---|
| Automatic Worker Scaling | No manual node intervention |
| Better Resource Utilization | Use only required capacity |
| Faster App Deployment | Pending pods trigger scale-out |
| Cost Optimization | Remove idle worker nodes |
Provisioning a VKS Cluster with Autoscaler Annotations
Bill of Materials (BOM) used in Demo
- VKS 3.6.2
- VKr 1.35.2
- VCF 9.0.1
- VKS Standard Package v3.6.0+20260211
Step 1 : Verifying the AddonRelease exists
Step 2 : Check for the built-in AddonInstall
Step 3 : Provisioning a Cluster with Autoscaler Annotations
Create a file named vks_cluster_with_auto_scaler.yaml with the following content.
In this example my VKS Cluster name is vks-cluster-with-autoscaler and VKS Cluster supervisor namespace name is vks-cluster-namespace, refer yaml for referenc in Attachments sectione.
Verifying VKS Cluster is created successfully and running fine.
Verifying the Auto Scaler Installation
Generate VKS Cluster kubeconfig for verification and run following command against VKS Cluster.
Step 1 :Verifyingy Cluster Auto Scaler Package is installed successfully
Step 2 :Verifyingy Cluster Auto Scaler Deployment Object is created successfully
Step 3 :Verifyingy Cluster Auto Scaler Pod is running fine
Step 4 :Verifyingy Cluster Nodes Ready Status
Exercising Autoscale-Out & Autoscale-In workflow
Step1 : Triggering a scale-out
Deploy a workload and scale it beyond what the current nodes can accommodate. The autoscaler should detect pending pods and provision additional nodes.
Create a file named nginx.yaml with the following content.
Verifying Pods are pending or not
Verifying New VKS Worker is added or not.
Step2 : Observing scale-in
Delete the nginx deployment and wait for the scaleDownUnneededTime window (10 minutes by default) to elapse. The autoscaler will cordon and drain underutilized nodes before terminating them.
Delete the nginx deployment
Node vks-cluster-with-autoscaler-photon-worker-node-jkxq2-cmd9b48mh6 is removed.
Key Takeaways
-
Cluster Autoscaler is available as a built-in add-on in VKS through native Add-on Management.
-
Automatically scales worker nodes up or down based on pending pods and cluster utilization.
-
Eliminates manual node scaling operations and improves operational efficiency.
-
Helps reduce infrastructure costs by removing underutilized nodes.
-
Improves application availability during sudden traffic spikes or workload bursts.
Disclaimer
This blog is for informational and educational purposes only. The configurations, examples, and architectural guidance provided are based on general best practices and publicly available references.
Always validate configurations in a non-production environment before applying them to live systems. Features and integrations may vary depending on the versions of VKr, VKS, and VKS Standard Packages being used. The author is not responsible for any unintended impact caused by the use of this information in production environments.
