Está en la página 1de 4

Horizontal Pod AutoScaler (HPA)

Es una función integrada de Kubernetes que permite escalar aplicaciones de forma horizontal en
función de una o más métricas supervisadas.

El HPA puede monitorear una métrica sobre una aplicación y ajustar continuamente la cantidad de
réplicas para satisfacer de manera óptima la demanda actual.

Los recursos que el escalador automático de pod horizontal puede escalar incluyen; Deployment,
StatefulSet, ReplicaSet y ReplicationController.

Los pasos para esta bucle de control son:

1.- Consultar la métrica de escalado


2.- Calcular la cantidad desead de réplicas
3.- Escalar la aplicación al número deseado de replicas

El periodo por defecto para el bucle de control es de 15 segundos

El algoritmo para calcular el número deseado de replicas esta basado en la siguiente formula:

X = N * (c/t)

Donde:

X, es el número deseado de replicas


N, es el número actual de replicas
c, es el actual valor de la métrica
t, es el valor objetivo
Servicio de Métricas

El registro de métricas, es una lugar central en el clúster donde las métricas (de cualquier tipo) se
exponen a los clientes (de cualquier tipo).

El Horizontal Pod Autoscaler es uno de estos clientes.

El propósito del registro de métricas es proporcionar una interfaz estándar para que los clientes
consulten métricas.

La interfaz de registro de métricas consta de tres API independientes:

• El Resource Metrics API


• El Custom Metrics API
• El External Metrics API

Estas APIs están diseñadas para ofrecer diferentes tipos de métricas.

Resource Metrics API: Métricas de uso de recursos predefinidas (CPU y memoria) de pods y nodos
Custom Metrics API: Métricas personalizadas asociadas con un objeto de Kubernetes
External Metrics API: Métricas personalizadas no asociadas con un objeto de Kubernetes

Todas estas APIs de métricas son API de extensión.

Por otro lado, para cada API de métricas, se necesita un servidor de API de métricas correspondiente y
se debe configurar para poder exponer una métrica específica a través de la API de métricas.

De forma predeterminada, no se tiene instalado servidores de API de métricas en Kubernetes, lo que


significa que las API de métricas no están habilitadas de forma predeterminada.

Además, se necesita un recopilador de métricas que recopile las métricas deseadas de las fuentes (por
ejemplo, de los pods de la aplicación de destino) y las proporcione al servidor de API de métricas.
Hay diferentes opciones de servidores de API de métricas y recopiladores de métricas para las distintas
API de métricas.

Resource Metrics API:

• El colector de métricas es cAdvisor, que se ejecuta como parte de kubelet en cada nodo worker
(por lo que ya está instalado de forma predeterminada)

• El servidor API de métricas oficial para la API de métricas de recursos es el servidor de


métricas (https://github.com/kubernetes-sigs/metrics-server)

Custom Metrics API y External Metrics API:

• Una opción popular para la recopilación de métricas es Prometheus, sin embargo, se pueden
emplear otros sistemas como Datadog o Google Stackdriver

• Prometheus Adapter es un servidor API de métricas que se integra con Prometheus como un
recopilador de métricas; sin embargo, otros recopiladores de métricas tienen sus propios
servidores API de métricas
Versión OpenShift

Recursos

• Prometheus Adapter – API Extension

https://github.com/kubernetes-sigs/prometheus-adapter

• API de Métricas Personalizado

https://github.com/kubernetes-sigs/custom-metrics-apiserver

También podría gustarte