Creating a CustomedHPA Policy¶
A CustomedHPA policy scales Deployments based on metrics (such as CPU usage and memory usage) or at a periodic interval (a specific time point every day, every week, every month, or every year). This type of policy is a CCE-enhanced auto scaling capability.
Supported functions:
Scaling can be performed based on the percentage of the current number of pods.
The minimum scaling step can be set.
Different scaling operations can be performed based on the actual metric values.
Prerequisites¶
The CCE Advanced HPA add-on must be installed. If the add-on version is 1.2.11 or later, one of the following add-ons that can provide metrics APIs must be installed based on your cluster version and service requirements:
Kubernetes Metrics Server: provides basic resource usage metrics, such as container CPU and memory usage. It is supported by all cluster versions.
Cloud Native Cluster Monitoring: available only in clusters of v1.17 or later.
Auto scaling based on basic resource metrics: Prometheus needs to be registered as a metrics API. For details, see Providing Resource Metrics Through the Metrics API.
Auto scaling based on custom metrics: Custom metrics need to be aggregated to the Kubernetes API server. For details, see Creating an HPA Policy Using Custom Metrics.
Notes and Constraints¶
CustomedHPA policies apply only to clusters of v1.15 or later.
For clusters earlier than v1.19.10, if an HPA policy is used to scale out a workload with EVS volumes mounted, the existing pods cannot be read or written when a new pod is scheduled to another node.
For clusters of v1.19.10 and later, if an HPA policy is used to scale out a workload with EVS volume mounted, a new pod cannot be started because EVS disks cannot be attached.
The specifications of the CCE Advanced HPA add-on are decided based on the total number of containers in the cluster and the number of scaling policies. Configure 500m CPU cores and 1000 MiB memory for every 5000 containers, and 100m CPU cores and 500 MiB memory for every 1000 scaling policies.
After a CustomedHPA policy is created, the type of its associated workload cannot be changed.
Procedure¶
Log in to the CCE console and click the cluster name to access the cluster console.
Choose Workloads in the navigation pane. Locate the target workload and choose More > Auto Scaling in the Operation column.
Set Policy Type to CustomedHPA and configure policy parameters.
¶ Parameter
Description
Pod Range
Minimum and maximum numbers of pods.
When a policy is triggered, the workload pods are scaled within this range.
Cooldown Period
Enter an interval, in minutes.
This parameter indicates the interval between consecutive scaling operations. The cooldown period ensures that a scaling operation is initiated only when the previous one is completed and the system is running stably.
Note
The cooldown period takes effect only for metric-based policies. Periodic policies are not affected by the cooldown period.
Rules
Click . In the dialog box displayed, set the following parameters:
Type: You can select Metric-based (Table 2) or Periodic (Table 3). Then, configure trigger conditions and actions.
Enable: Enable or disable the policy rule.
After configuring the preceding parameters, click OK. Then, the added policy rule is displayed in the rule list.
¶ Parameter
Description
Trigger
Select CPU usage or Memory usage, choose > or <, and enter a percentage.
Note
Usage = CPUs or memory used by pods/Requested CPUs or memory.
Action
Set an action to be performed when the trigger condition is met. Multiple actions can be added.
Scale To: Adjust the number of pods to the specified value. Both a number and a percentage will do. This action can be used to scale in or out pods. If the current number of pods is less than the target value or the target percentage is greater than 100%, the number of pods will be scaled out to the target value. If the current number of pods is greater than the target value or the target percentage is less than 100%, the number of pods will be scaled in to the target value.
Add: Configure this parameter when Trigger is set to >. Add the number of pods. You can specify a number or a percentage. This action can only be used to scale out pods.
Reduce: Configure this parameter when Trigger is set to <. Reduce the number of pods. You can specify a number or a percentage. This action can only be used to scale in pods.
Note
You can enter a number or a percentage for the preceding actions.
When entering a percentage, you are required to specify the minimum number of available pods. Final number of pods = Number of current pods x Percentage. The result is rounded up. If the result is smaller than the minimum number of available pods, the preset value is used. Otherwise, the calculation result is used.
¶ Parameter
Description
Trigger Time
You can select a specific time every day, every week, every month, or every year.
Action
Set an action to be performed at the Triggered Time.
Scale To: Adjust the number of pods to the specified value. Both a number and a percentage will do. This action can be used to scale in or out pods. If the current number of pods is less than the target value or the target percentage is greater than 100%, the number of pods will be scaled out to the target value. If the current number of pods is greater than the target value or the target percentage is less than 100%, the number of pods will be scaled in to the target value.
Add: Add the number of pods. You can specify a number or a percentage. This action can only be used to scale out pods.
Reduce: Reduce the number of pods. You can specify a number or a percentage. This action can only be used to scale in pods.
Note
You can enter a number or a percentage for the preceding actions.
When entering a percentage, you are required to specify the minimum number of available pods. Final number of pods = Number of current pods x Percentage. The result is rounded up. If the result is smaller than the minimum number of available pods, the preset value is used. Otherwise, the calculation result is used.
Click Create.