Horizontal Pod Autoscaler Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 47: Line 47:
The value for this option is a duration that specifies how long the autoscaler has to wait before another downscale operation can be performed after the current one has completed. The default value is 5 minutes. Also see: {{Internal|Kubernetes_Horizontal_Pod_Autoscaler#Autoscaling_Algorithm|Autoscaling Algorithm}}
The value for this option is a duration that specifies how long the autoscaler has to wait before another downscale operation can be performed after the current one has completed. The default value is 5 minutes. Also see: {{Internal|Kubernetes_Horizontal_Pod_Autoscaler#Autoscaling_Algorithm|Autoscaling Algorithm}}
==--horizontal-pod-autoscaler-use-rest-clients==
==--horizontal-pod-autoscaler-use-rest-clients==
This should be set to true or be unset to configure the autoscaler to read metrics from metrics APIs. Setting this to false switches to Heapster-based autoscaling, which is deprecated.
This should be set to true or be unset to configure the autoscaler to read metrics from metrics APIs. Setting this to false switches to Heapster-based autoscaling, which is deprecated. Also see: {{Kubernetes_Horizontal_Pod_Autoscaler#How_it_Works|How Horizontal Pod Autoscaler Works}}

Revision as of 17:47, 13 October 2020

Internal

Create an Autoscaler

CPU-Based Autoscaler

For the autoscaler to work, the pods subject to autoscaling must have their CPU requests set.

With CLI

kubectl autoscale deployment <deployment-name> --cpu-percent=50 --min=1 --max=10

With Metadata

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: example
spec:
  minReplicas: 1
  maxReplicas: 5
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: httpd
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 50

Playground

https://github.com/ovidiuf/playground/tree/master/kubernetes/horizontal-pod-autoscaler/cpu-based

Horizontal Pod Autoscaler Controller Configuration

--horizontal-pod-autoscaler-sync-period

Sets the period of the control loop. By default, the value is 15 seconds.

--horizontal-pod-autoscaler-tolerance

See:

Autoscaling Algorithm

--horizontal-pod-autoscaler-initial-readiness-delay

--horizontal-pod-autoscaler-cpu-initialization-period

--horizontal-pod-autoscaler-downscale-stabilization

The value for this option is a duration that specifies how long the autoscaler has to wait before another downscale operation can be performed after the current one has completed. The default value is 5 minutes. Also see:

Autoscaling Algorithm

--horizontal-pod-autoscaler-use-rest-clients

This should be set to true or be unset to configure the autoscaler to read metrics from metrics APIs. Setting this to false switches to Heapster-based autoscaling, which is deprecated. Also see: Template:Kubernetes Horizontal Pod Autoscaler