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
Please see reference for the
AutoScale
component that is
used within this blueprint.
Configuration
Blueprint name: auto-scaling/pod-auto-scaler
Parameters
policy
Parameter | policy.components |
Description | List of additional circuit components. |
Type | Array of Object (aperture.spec.v1.Component) |
Default Value | Expand
|
Parameter | policy.policy_name |
Description | Name of the policy. |
Type | string |
Default Value | __REQUIRED_FIELD__ |
Parameter | policy.resources |
Description | Additional resources. |
Type | Object (aperture.spec.v1.Resources) |
Default Value | Expand
|
Parameter | policy.dry_run |
Description | Dry run mode ensures that no scaling is invoked by this auto scaler. |
Type | Boolean |
Default Value | false |
Parameter | policy.evaluation_interval |
Description | The interval between successive evaluations of the Circuit. |
Type | string |
Default Value | 10s |
Parameter | policy.promql_scale_in_controllers |
Description | List of scale in controllers. |
Type | Array of Object (promql_scale_in_controller) |
Default Value | Expand
|
Parameter | policy.promql_scale_out_controllers |
Description | List of scale out controllers. |
Type | Array of Object (promql_scale_out_controller) |
Default Value | Expand
|
Parameter | policy.scaling_backend |
Description | Scaling backend for the policy. |
Type | Object (aperture.spec.v1.AutoScalerScalingBackend) |
Default Value | Expand
|
Parameter | policy.scaling_parameters |
Description | Parameters that define the scaling behavior. |
Type | Object (aperture.spec.v1.AutoScalerScalingParameters) |
Default Value | Expand
|
Parameter | policy.pod_cpu |
Description | Driver to do scaling of the resource based on the CPU usage. |
Type | Object (scaling_driver) |
Default Value | Expand
|
Parameter | policy.pod_memory |
Description | Driver to do scaling of the resource based on the Memory usage. |
Type | Object (scaling_driver) |
Default Value | Expand
|
dashboard
Parameter | dashboard.extra_filters |
Description | Additional filters to pass to each query to Grafana datasource. |
Type | Object (map[string]string) |
Default Value | Expand
|
Parameter | dashboard.refresh_interval |
Description | Refresh interval for dashboard panels. |
Type | string |
Default Value | 15s |
Parameter | dashboard.time_from |
Description | From time of dashboard. |
Type | string |
Default Value | now-15m |
Parameter | dashboard.time_to |
Description | To time of dashboard. |
Type | string |
Default Value | now |
Parameter | dashboard.title |
Description | Name of the main dashboard. |
Type | string |
Default Value | Aperture Auto-scale |
dashboard.datasource
Parameter | dashboard.datasource.filter_regex |
Description | Datasource filter regex. |
Type | string |
Default Value |
|
Parameter | dashboard.datasource.name |
Description | Datasource name. |
Type | string |
Default Value | $datasource |
Schemas
promql_scale_in_controller
Parameter | alerter |
Description | Alerter parameters for the controller. |
Type | Object (aperture.spec.v1.AlerterParameters) |
Default Value | __REQUIRED_FIELD__ |
Parameter | gradient |
Description | Gradient parameters for the controller. |
Type | Object (aperture.spec.v1.DecreasingGradientParameters) |
Default Value | __REQUIRED_FIELD__ |
Parameter | query_string |
Description | The Prometheus query to be run. Must return a scalar or a vector with a single element. |
Type | string |
Default Value | __REQUIRED_FIELD__ |
Parameter | setpoint |
Description | Setpoint for the controller. |
Type | Number (double) |
Default Value | __REQUIRED_FIELD__ |
promql_scale_out_controller
Parameter | alerter |
Description | Alerter parameters for the controller. |
Type | Object (aperture.spec.v1.AlerterParameters) |
Default Value | __REQUIRED_FIELD__ |
Parameter | gradient |
Description | Gradient parameters for the controller. |
Type | Object (aperture.spec.v1.IncreasingGradientParameters) |
Default Value | __REQUIRED_FIELD__ |
Parameter | query_string |
Description | The Prometheus query to be run. Must return a scalar or a vector with a single element. |
Type | string |
Default Value | __REQUIRED_FIELD__ |
Parameter | setpoint |
Description | Setpoint for the controller. |
Type | Number (double) |
Default Value | __REQUIRED_FIELD__ |
scaling_criteria
Parameter | enabled |
Description | Enables the driver to do scale in or out of the resource. |
Type | Boolean |
Default Value | __REQUIRED_FIELD__ |
Parameter | threshold |
Description | Threshold for the driver. |
Type | Number (double) |
Default Value | __REQUIRED_FIELD__ |
scaling_driver
Parameter | scale_in |
Description | The scale in criteria for the driver. |
Type | Object (scaling_criteria) |
Default Value | Expand
|
Parameter | scale_out |
Description | The scale out criteria for the driver. |
Type | Object (scaling_criteria) |
Default Value | Expand
|
Dynamic Configuration
note
The following configuration parameters can be dynamically configured at runtime, without reloading the policy.
Parameters
Parameter | dry_run |
Description | Dynamic 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. |
Type | Boolean |
Default Value | __REQUIRED_FIELD__ |