Skip to main content
Version: development

Pod Auto-Scaler Policy

Introduction

This blueprint provides a dashboard and policy which auto-scales the targeted Kubernetes resources based on the results received by executing the provided PromQL queries for scale-in and scale-out.

info

See reference for the AutoScale component that is used within this blueprint.

Configuration

Blueprint name: auto-scaling/pod-auto-scaler

Parameters

policy

Parameterpolicy.components
DescriptionList of additional circuit components.
TypeArray of Object (aperture.spec.v1.Component)
Default Value
Expand
[]
Parameterpolicy.policy_name
DescriptionName of the policy.
Typestring
Default Value__REQUIRED_FIELD__
Parameterpolicy.resources
DescriptionAdditional resources.
TypeObject (aperture.spec.v1.Resources)
Default Value
Expand
flow_control:
classifiers: []
Parameterpolicy.dry_run
DescriptionDry run mode ensures that no scaling is invoked by this auto scaler.
TypeBoolean
Default Valuefalse
Parameterpolicy.promql_scale_in_controllers
DescriptionList of scale in controllers.
TypeArray of Object (promql_scale_in_controller)
Default Value
Expand
[]
Parameterpolicy.promql_scale_out_controllers
DescriptionList of scale out controllers.
TypeArray of Object (promql_scale_out_controller)
Default Value
Expand
[]
Parameterpolicy.scaling_backend
DescriptionScaling backend for the policy.
TypeObject (aperture.spec.v1.AutoScalerScalingBackend)
Default Value
Expand
kubernetes_replicas: __REQUIRED_FIELD__
Parameterpolicy.scaling_parameters
DescriptionParameters that define the scaling behavior.
TypeObject (aperture.spec.v1.AutoScalerScalingParameters)
Default Value
Expand
scale_in_alerter:
alert_name: Auto-scaler is scaling in
scale_out_alerter:
alert_name: Auto-scaler is scaling out
Parameterpolicy.pod_cpu
DescriptionDriver to do scaling of the resource based on the CPU usage.
TypeObject (scaling_driver)
Default Value
Expand
{}
Parameterpolicy.pod_memory
DescriptionDriver to do scaling of the resource based on the Memory usage.
TypeObject (scaling_driver)
Default Value
Expand
{}

Schemas

promql_scale_in_controller

Parameteralerter
DescriptionAlerter parameters for the controller.
TypeObject (aperture.spec.v1.AlerterParameters)
Default Value__REQUIRED_FIELD__
Parametergradient
DescriptionGradient parameters for the controller.
TypeObject (aperture.spec.v1.DecreasingGradientParameters)
Default Value__REQUIRED_FIELD__
Parameterquery_string
DescriptionThe Prometheus query to be run. Must return a scalar or a vector with a single element.
Typestring
Default Value__REQUIRED_FIELD__
Parametersetpoint
DescriptionSetpoint for the controller.
TypeNumber (double)
Default Value__REQUIRED_FIELD__

promql_scale_out_controller

Parameteralerter
DescriptionAlerter parameters for the controller.
TypeObject (aperture.spec.v1.AlerterParameters)
Default Value__REQUIRED_FIELD__
Parametergradient
DescriptionGradient parameters for the controller.
TypeObject (aperture.spec.v1.IncreasingGradientParameters)
Default Value__REQUIRED_FIELD__
Parameterquery_string
DescriptionThe Prometheus query to be run. Must return a scalar or a vector with a single element.
Typestring
Default Value__REQUIRED_FIELD__
Parametersetpoint
DescriptionSetpoint for the controller.
TypeNumber (double)
Default Value__REQUIRED_FIELD__

scaling_criteria

Parameterenabled
DescriptionEnables the driver to do scale in or out of the resource.
TypeBoolean
Default Value__REQUIRED_FIELD__
Parameterthreshold
DescriptionThreshold for the driver.
TypeNumber (double)
Default Value__REQUIRED_FIELD__

scaling_driver

Parameterscale_in
DescriptionThe scale in criteria for the driver.
TypeObject (scaling_criteria)
Default Value
Expand
{}
Parameterscale_out
DescriptionThe scale out criteria for the driver.
TypeObject (scaling_criteria)
Default Value
Expand
{}

Dynamic Configuration

note

The following configuration parameters can be dynamically configured at runtime, without reloading the policy.

Parameters

Parameterdry_run
DescriptionDynamic configuration for setting dry run mode at runtime without restarting this policy. Dry run mode ensures that no scaling is invoked by this auto scaler. This is useful for observing the behavior of auto scaler without disrupting any real deployment.
TypeBoolean
Default Value__REQUIRED_FIELD__