From 4d243d514ed9ec5aada282ef718f4174ceda5aaa Mon Sep 17 00:00:00 2001 From: Jerzy Szczepkowski Date: Thu, 22 Oct 2015 16:09:44 +0200 Subject: [PATCH] Added user guide for horizontal pod autoscaler. Added user guide for horizontal pod autoscaler. Part of #15652. --- docs/user-guide/horizontal-pod-autoscaler.md | 127 ++++++++++++++++++ docs/user-guide/horizontal-pod-autoscaler.png | Bin 0 -> 21898 bytes docs/user-guide/horizontal-pod-autoscaler.svg | 4 + 3 files changed, 131 insertions(+) create mode 100644 docs/user-guide/horizontal-pod-autoscaler.md create mode 100644 docs/user-guide/horizontal-pod-autoscaler.png create mode 100644 docs/user-guide/horizontal-pod-autoscaler.svg diff --git a/docs/user-guide/horizontal-pod-autoscaler.md b/docs/user-guide/horizontal-pod-autoscaler.md new file mode 100644 index 00000000000..5cebd1e3631 --- /dev/null +++ b/docs/user-guide/horizontal-pod-autoscaler.md @@ -0,0 +1,127 @@ + + + + +WARNING +WARNING +WARNING +WARNING +WARNING + +

PLEASE NOTE: This document applies to the HEAD of the source tree

+ +If you are using a released version of Kubernetes, you should +refer to the docs that go with that version. + + +The latest 1.0.x release of this document can be found +[here](http://releases.k8s.io/release-1.0/docs/user-guide/horizontal-pod-autoscaler.md). + +Documentation for other releases can be found at +[releases.k8s.io](http://releases.k8s.io). + +-- + + + + + +# Horizontal Pod Autoscaler + +This document describes the current state of Horizontal Pod Autoscaler in Kubernetes. + + + +- [Horizontal Pod Autoscaler](#horizontal-pod-autoscaler) + - [What is Horizontal Pod Autoscaler?](#what-is-horizontal-pod-autoscaler) + - [How does Horizontal Pod Autoscaler work?](#how-does-horizontal-pod-autoscaler-work) + - [API Object](#api-object) + - [Support for horizontal pod autoscaler in kubectl](#support-for-horizontal-pod-autoscaler-in-kubectl) + - [Autoscaling during rolling update](#autoscaling-during-rolling-update) + - [Further reading](#further-reading) + + + + +## What is Horizontal Pod Autoscaler? + +Horizontal pod autoscaling allows the number of pods in a replication controller or deployment +to scale automatically based on observed CPU utilization. +It is a [beta](../api.md#api-versioning) feature in Kubernetes 1.1. + +The autoscaler is implemented as a Kubernetes API resource and a controller. +The resource describes behavior of the controller. +The controller periodically adjusts the number of replicas in a replication controller or deployment +to match the observed average CPU utilization to the target specified by user. + + +## How does Horizontal Pod Autoscaler work? + +![Horizontal Pod Autoscaler diagram](horizontal-pod-autoscaler.png) + +The autoscaler is implemented as a control loop. +It periodically queries CPU utilization for the pods it targets. +(The period of the autoscaler is controlled by `--horizontal-pod-autoscaler-sync-period` flag of controller manager. +The default value is 30 seconds). +Then, it compares the arithmetic mean of the pods' CPU utilization with the target and adjust the number of replicas if needed. + +CPU utilization is the recent CPU usage of a pod divided by the sum of CPU requested by the pod's containers. +Please note that if some of the pod's containers do not have CPU request set, +CPU utilization for the pod will not be defined and the autoscaler will not take any action. +Further details of the autoscaling algorithm are given [here](../design/horizontal-pod-autoscaler.md#autoscaling-algorithm). + +Autoscaler accesses corresponding replication controller or deployment by scale sub-resource. +Scale is an interface which allows to dynamically set the number of replicas and to learn the current state of them. +More details on scale sub-resource can be found [here](../design/horizontal-pod-autoscaler.md#scale-subresource). + + +## API Object + +Horizontal pod autoscaler is a top-level resource in the Kubernetes REST API (currently in [beta](../api.md#api-versioning)). +More details about the API object can be found at +[HorizontalPodAutoscaler Object](../design/horizontal-pod-autoscaler.md#horizontalpodautoscaler-object). + +## Support for horizontal pod autoscaler in kubectl + +Horizontal pod autoscaler, like every API resource, is supported in a standard way by `kubectl`. +We can create a new autoscaler using `kubectl create` command. +We can list autoscalers by `kubectl get hpa` and get detailed description by `kubectl describe hpa`. +Finally, we can delete an autoscaler using `kubectl delete hpa`. + +In addition, there is a special `kubectl autoscale` command that allows for easy creation of horizontal pod autoscaler. +For instance, executing `kubectl autoscale rc foo --min=2 --max=5 --cpu-percent=80` +will create an autoscaler for replication controller *foo*, with target CPU utilization set to `80%` +and the number of replicas between 2 and 5. +The detailed documentation of `kubectl autoscale` can be found [here](kubectl/kubectl_autoscale.md). + + +## Autoscaling during rolling update + +Currently in Kubernetes, it is possible to perform a rolling update by managing replication controllers directly, +or by using the deployment object, which manages the underlying replication controllers for you. +Horizontal pod autoscaler only supports the latter approach: the horizontal pod autoscaler is bound to the deployment object, +it sets the size for the deployment object, and the deployment is responsible for setting sizes of underlying replication controllers. + +Horizontal pod autoscaler does not work with rolling update using direct manipulation of replication controllers, +i.e. you cannot bind a horizontal pod autoscaler to a replication controller and do rolling update (e.g. using `kubectl rolling-update`). +The reason this doesn't work is that when rolling update creates a new replication controller, +the horizontal pod autoscaler will not be bound to the new replication controller. + + +## Further reading + +* Design documentation: [Horizontal Pod Autoscaling](../design/horizontal-pod-autoscaler.md). +* Manual of autoscale command in kubectl: [kubectl autoscale](kubectl/kubectl_autoscale.md). +* Usage example of [Horizontal Pod Autoscaler](horizontal-pod-autoscaling/README.md). + + + + + +[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/user-guide/horizontal-pod-autoscaler.md?pixel)]() + diff --git a/docs/user-guide/horizontal-pod-autoscaler.png b/docs/user-guide/horizontal-pod-autoscaler.png new file mode 100644 index 0000000000000000000000000000000000000000..dafc41610487ba005ca576ebb56bd276d0c3050d GIT binary patch literal 21898 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 literal 0 HcmV?d00001 diff --git a/docs/user-guide/horizontal-pod-autoscaler.svg b/docs/user-guide/horizontal-pod-autoscaler.svg new file mode 100644 index 00000000000..34d3a8aa053 --- /dev/null +++ b/docs/user-guide/horizontal-pod-autoscaler.svg @@ -0,0 +1,4 @@ + + + +