Ce contenu n'est pas disponible dans la langue sélectionnée.

Chapter 18. Pod Autoscaling


18.1. Overview

A horizontal pod autoscaler, defined by a HorizontalPodAutoscaler object, specifies how the system should automatically increase or decrease the scale of a replication controller or deployment configuration, based on metrics collected from the pods that belong to that replication controller or deployment configuration.

Note

Horizontal pod autoscaling is supported starting in OpenShift Enterprise 3.1.1.

18.2. Requirements for Using Horizontal Pod Autoscalers

In order to use horizontal pod autoscalers, your cluster administrator must have properly configured cluster metrics.

18.3. Supported Metrics

The following metrics are supported by horizontal pod autoscalers:

Table 18.1. Metrics
MetricDescription

CPU Utilization

Percentage of the requested CPU

18.4. Autoscaling

After a horizontal pod autoscaler is created, it begins attempting to query Heapster for metrics on the pods. It may take one to two minutes before Heapster obtains the initial metrics.

After metrics are available in Heapster, the horizontal pod autoscaler computes the ratio of the current metric utilization with the desired metric utilization, and scales up or down accordingly. The scaling will occur at a regular interval, but it may take one to two minutes before metrics make their way into Heapster.

For replication controllers, this scaling corresponds directly to the replicas of the replication controller. For deployment configurations, scaling corresponds directly to the replica count of the deployment configuration. Note that autoscaling applies only to the latest deployment in the Complete phase.

18.5. Creating a Horizontal Pod Autoscaler

To create a horizontal pod autoscaler, first define it in a file. For example:

Example 18.1. Horizontal Pod Autoscaler Object Definition

apiVersion: extensions/v1beta1
kind: HorizontalPodAutoscaler
metadata:
  name: frontend-scaler 1
spec:
  scaleRef:
    kind: DeploymentConfig 2
    name: frontend 3
    apiVersion: v1 4
    subresource: scale
  minReplicas: 1 5
  maxReplicas: 10 6
  cpuUtilization:
    targetPercentage: 80 7
1
The name of this horizontal pod autoscaler object
2
The kind of object to scale
3
The name of the object to scale
4
The API version of the object to scale
5
The minimum number of replicas to which to scale down
6
The maximum number of replicas to which to scale up
7
The percentage of the requested CPU that each pod should ideally be using

Save your definition to a file, such as scaler.yaml, then use the CLI to create the object:

$ oc create -f scaler.yaml

18.6. Viewing a Horizontal Pod Autoscaler

To view the status of a horizontal pod autoscaler:

$ oc get hpa
NAME              REFERENCE                                 TARGET    CURRENT   MINPODS        MAXPODS   AGE
frontend-scaler   DeploymentConfig/default/frontend/scale   80%       79%       1              10        8d

$ oc describe hpa frontend-scaler
Name:                           frontend-scaler
Namespace:                      default
Labels:                         <none>
CreationTimestamp:              Mon, 26 Oct 2015 21:13:47 -0400
Reference:                      DeploymentConfig/default/frontend/scale
Target CPU utilization:         80%
Current CPU utilization:        79%
Min pods:                       1
Max pods:                       10
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.