Autoescalado

Kf aprovecha el autoescalador de pods horizontal (HPA) de Kubernetes para escalar automáticamente el número de pods de una aplicación. Cuando se habilita el autoescalado en una aplicación, se crea un objeto HPA y se vincula al objeto de la aplicación. Después, calcula dinámicamente la escala de destino y la define para la aplicación.

Cómo funciona el escalado de Kf

El número de pods que se implementan en una aplicación de Kf se controla mediante el campo replica del objeto de implementación subyacente. El número objetivo de réplicas de Deployment se define mediante el campo replicas de la aplicación.

El escalado se puede hacer manualmente con el comando kf scale. Este comando se inhabilita cuando se habilita el ajuste de escala automático para evitar conflictos entre los objetivos.

Cómo funciona la herramienta de adaptación dinámica horizontal de pods de Kubernetes

El autoescalado horizontal de pods (HPA) se implementa como un recurso de la API de Kubernetes (el objeto HPA) y un bucle de control (el controlador HPA) que calcula periódicamente el número de réplicas deseadas en función de la utilización de recursos actual. A continuación, el controlador de HPA pasa el número al objeto de destino que implementa el subrecurso Scale. El escalado real se delega en el objeto subyacente y su controlador. Puedes consultar más información en la documentación de Kubernetes.

Cómo determina Autoscaler cuándo escalar

Periódicamente, el controlador HPA consulta la utilización de recursos en comparación con las métricas especificadas en cada definición de HorizontalPodAutoscaler. El controlador obtiene las métricas de la API de métricas de recursos de cada pod. A continuación, el controlador calcula el valor de utilización como un porcentaje de la solicitud de recursos equivalente. A continuación, se calcula el número de réplicas que se quiere en función de la proporción entre el porcentaje actual y el porcentaje deseado. Puedes consultar más información sobre el algoritmo de autoescalado en la documentación de Kubernetes.

Métricas

Kf usa HPA v1, que solo admite la CPU como métrica de destino.

Cómo funciona el escalador automático horizontal de Kubernetes con Kf

Cuando se habilita el escalado automático en una aplicación de Kf, el controlador de Kf crea un objeto HPA basado en los límites y las reglas de escalado especificados en la aplicación. A continuación, el controlador de HPA obtiene las especificaciones del objeto HPA y escala la aplicación en consecuencia.

El objeto HPA se eliminará si se inhabilita el autoescalado o si se elimina la aplicación correspondiente.