Updated on 2024-01-24 GMT+08:00

CustomedHPA

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

To use a CustomedHPA policy, you must install the cce-hpa-controller add-on. If the cce-hpa-controller version is earlier than 1.2.11, the prometheus add-on must be installed. If the cce-hpa-controller version is 1.2.11 or later, the add-ons that can provide metrics API must be installed. Select one of the following add-ons based on your cluster version and actual requirements.

Constraints

  • CustomedHPA policies can be created only for 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 cce-hpa-controller are decided by the total number of containers in the cluster and the number of scaling policies. You are advised to configure 500 m CPU and 1000 MiB memory for every 5000 containers, and 100 m CPU and 500 MiB memory for every 1000 scaling policies.
  • If the cce-hpa-controller add-on version is earlier than 1.2.11, the kube-prometheus-stack add-on cannot provide metrics APIs to scale workloads.
  • An associated workload cannot be changed to another type of workload after a CustomedHPA policy is created.

Creating a CustomedHPA policy

  1. Log in to the CCE console and click the cluster name to access the cluster console.
  2. Choose Auto Scaling in the navigation pane and click the CustomedHPA Policy tab.

    • If Uninstalled is displayed next to the add-on name, click Install, set add-on parameters as required, and click Install to install the add-on.
    • If Installed is displayed next to the add-on name, the add-on has been installed.

  3. After the add-on is installed, click Create CustomedHPA Policy in the upper right corner.
  4. Configure policy parameters.

    Table 1 CustomedHPA policy parameters

    Parameter

    Description

    Policy Name

    Name of the policy to be created. Set this parameter as required.

    Namespace

    Namespace to which the workload belongs.

    Associated Workload

    Workload with which the CustomedHPA policy is associated.

    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:

    • Name: Enter a custom rule name.
    • 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.

    Table 2 Metric-based rules

    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.

    Table 3 Periodic-based rules

    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.

  5. Click Create.