Auto scaling is a service that automatically and economically adjusts service resources based on your service requirements and configured policies.
More and more applications are developed based on Kubernetes. It becomes increasingly important to quickly scale out applications on Kubernetes to cope with service peaks and to scale in applications during off-peak hours to save resources and reduce costs.
In a Kubernetes cluster, auto scaling involves pods and nodes. A pod is an application instance. Each pod contains one or more containers and runs on a node (VM). If a cluster does not have sufficient nodes to run new pods, you need to add nodes to the cluster to ensure service running.
In CCE, auto scaling is used for online services, large-scale computing and training, deep learning GPU or shared GPU training and inference, periodic load changes, and many other scenarios.
CCE supportsauto scaling for workloads and nodes.
Workload scaling components are described as follows:
Type |
Component Name |
Component Description |
Reference |
---|---|---|---|
HPA |
A built-in component of Kubernetes, which enables horizontal scaling of pods. It adds the application-level cooldown time window and scaling threshold functions based on the HPA. |
Node scaling components are described as follows:
Component Name |
Component Description |
Application Scenario |
Reference |
---|---|---|---|
An open-source Kubernetes component for horizontal scaling of nodes, which is optimized in terms of scheduling and auto scaling capabilities. |
Online services, deep learning, and large-scale computing with limited resource budgets |