Auto Scaling (ESS) is a service that can dynamically scale computing resources to meet your business requirements. This provides a more cost efficient method to manage your resources.
- Workload scaling. ESS can adjust workloads, such as pods. For example, Horizontal Pod Autoscaler (HPA) is a typical workload scaling component that can change the number of pod replicas to scale the workload.
- Resource scaling. If the resources of a cluster cannot meet the requirements of the scaled workload, the related component automatically adds Elastic Compute Service (ECS) instances or elastic container instances (ECIs) to the cluster.
Scaling components for ACK clustersComponents for workload scaling
|HPA||Kubernetes is developed with built-in components. These components are mainly used for online applications.||Online workloads||HPA uses Deployments and StatefulSets to scale workloads.||HPA|
|Vertical Pod Autoscaler (VPA)||An open source community component. VPA is mainly used for monolithic applications.||Monolithic applications||VPA is applicable to applications that cannot be horizontally scaled. In practical scenarios, VPA is used when pods are recovered from anomalies.||Vertical pod autoscaling|
|CronHPA||An open source component provided by ACK. CronHPA is applicable to applications whose resource usage changes periodically.||Periodically changing workloads||CronHPA uses Deployments and StatefulSets to scale workloads. CronHPA is also compatible with HPA. You can use CronHPA and HPA in combination to scale workloads.||Implement cron HPA|
|Elastic-Workload||A component provided by ACK. ack-kubernetes-elastic-workload is used to scale workloads with a higher level of precision. For example, it can be applied when workloads are deployed in different zones.||Workloads that require precise scaling||ack-kubernetes-elastic-workload is applicable to online workloads that require precise scaling. For example, some pod replicas of a Deployment are scheduled to an ECS instance, and the remaining pod replicas are scheduled to ECIs.||Deploy and use ack-kubernetes-elastic-workload in an ACK cluster|
|Component||Description||Scenario||Time cost for resource deployment||Related topic|
|cluster-autoscaler||cluster-autoscaler is an open source component provided by the Kubernetes community. cluster-autoscaler horizontally scales nodes in a cluster. cluster-autoscaler is integrated with ESS to provide more elastic and cost-efficient scaling services.||cluster-autoscaler is applicable to all scenarios, especially online workloads, deep learning, and large-scale computing.||The time required to add 1,000 nodes to a cluster is:
||Auto scaling of nodes|
|virtual-node||virtual-node is an open source component provided by ACK. virtual-node provides the runtime for serverless applications. Developers do not need to handle node resources and only need to create, manage, and pay for pods based on the actual usage.||virtual-node is used to handle online traffic spikes, continuous integration (CI) and continuous delivery (CD), and big data computing.||The time required to create 1,000 pods is:
||Deploy ack-virtual-node in an ACK cluster|
|virtual-kubelet-autoscaler||virtual-kubelet-autoscaler is a component provided by ACK. virtual-kubelet-autoscaler is used to scale serverless applications.||virtual-kubelet-autoscaler is used to handle online traffic spikes, CI/CD, and big data computing.||The time required to create 1,000 pods is:
||Install the virtual-kubelet-autoscaler add-on in an ACK cluster|