Updated on 2024-11-15 GMT+08:00

Configuring an HPA Policy

In Kubernetes, a HorizontalPodAutoscaler is a built-in component that provides horizontal pod autoscaling (HPA). It supports the application-level cooldown time window and scaling threshold functions based on the Kubernetes HPA.

Prerequisites

HPA policies can be configured only when the components are deployed based on a container and in the Running or Not ready state, and the CCE cluster version is later than 1.15. For details about how to check the component status, see Viewing Component Details.

Configuring an HPA Policy

  1. Log in to ServiceStage.
  2. Use either of the following methods to go to the Scaling page.

    • On the Application Management page, click the application to which the component belongs, click the target component in Component List, and choose Scaling in the left navigation pane.
    • On the Component Management page, click the target component and choose Scaling in the left navigation pane.

  3. On the Scaling page, click next to Auto Scaling by HPA to enable auto scaling policy configuration. The Policy page is displayed.

    • If metrics-server is not installed in the CCE cluster, go to 4.
    • If metrics-server has been installed in the CCE cluster, go to 6.

  4. Click Configure Now to install the metrics-server add-on on the CCE console.

    Install the metrics-server add-on for the CCE cluster. For details, see metrics-server.

  5. After the add-on is installed, return to the Policy page and click refresh.
  6. Configure the scaling policy.

    1. Policy Name

      Enter a policy name. After the policy is configured, its name cannot be changed.

      Enter 4 to 63 characters. Start with a lowercase letter and end with a lowercase letter or digit. Only use lowercase letters, digits, and hyphens (-).

    2. Cooldown Period

      Enter a scale-out/scale-in cooldown period.

      The same scaling operation will not be triggered again within the specified period.

    3. Pod Range

      Enter the minimum and maximum numbers of pods. The minimum number is an integer ranging from 1 to 299. The maximum number is an integer ranging from 1 to 1500 and must be greater than the minimum number.

      After the policy is triggered, the workload pods are scaled within this range.

    4. Triggering Condition

      You can configure trigger condition on the UI or by editing the YAML file.

      Before setting trigger conditions of CPU usage and Memory usage, you need to set the CPU quota (CPU) and memory quota (Memory) for the component. To modify the quotas, click Increase quota, set component resource parameters by referring to 5, and upgrade the component.

      • UI

        Set Desired Value and Threshold (scale-in and scale-out thresholds) of CPU usage and Memory usage.

        After the policy is triggered, the number of instances to be scaled is calculated by rounding up the value of (Current CPU or memory usage/Expected value x Number of running instances).

        • Scale-in is triggered when the current CPU or memory usage is less than the scale-in threshold.
        • Scale-out is triggered when the current CPU or memory usage is greater than the scale-out threshold.
      • YAML
         metrics:
           - type: Resource
             resource:
               name: cpu
               target:
                 type: Utilization
                 averageUtilization: 50
           - type: Resource
             resource:
               name: memory
               target:
                 type: Utilization
                 averageUtilization: 50
           - type: Pods
             pods:
               metric:
                 name: packets-per-second
               target:
                 type: AverageValue
                 averageValue: 1k
           - type: Object
             object:
               metric:
                 name: requests-per-second
               describedObject:
                 apiVersion: networking.k8s.io/v1beta1
                 kind: Ingress
                 name: main-route
               target:
                 type: Value
                 value: 10k

        As shown in the preceding example, in addition to using the CPU and memory usage as metrics, you can use the YAML format to customize metric parameters and support more metrics such as pods, object, and external.

        To configure custom metric parameters by using YAML, ensure that the prometheus add-on has been installed for the CCE cluster.

        Install the prometheus add-on for the CCE cluster. For details, see prometheus.

  7. Click OK.

Follow-Up Operations

After the HPA policy is configured, you can perform the following operations based on service requirements: