Kf aprovecha Horizontal Pod Autoscaler (HPA) de Kubernetes para realizar el ajuste de escala automático la cantidad de Pods de una app. Cuando el ajuste de escala automático está habilitado para una app, se crea un objeto HPA y se vincula al objeto de la app. Luego, calcula la escala de destino de forma dinámica y la configura para la app.
Cómo funciona el escalamiento de Kf
La cantidad de Pods que se implementan para una app de Kf se controla mediante el campo replica
del objeto Deployment subyacente. La cantidad objetivo de réplicas de implementación se establece a través del campo replicas
de la app.
El escalamiento se puede realizar de forma manual con el comando kf scale
. Este comando se inhabilita cuando el ajuste de escala automático se habilita para evitar objetivos en conflicto.
Cómo funciona el escalador automático de Pod horizontal de Kubernetes
El Horizontal Pod Autoscaler (HPA) se implementa como un recurso de la API de Kubernetes (el objeto HPA) y un bucle de control (el controlador de HPA) que calcula de forma periódica la cantidad de réplicas deseadas en función del uso actual de recursos. El controlador de HPA pasa el número al objeto de destino que implementa el subrecurso Scale. El escalamiento real se delega al objeto subyacente y a su controlador. Puedes obtener más información en la documentación de Kubernetes.
Cómo el escalador automático determina cuándo escalar
El controlador de HPA consulta de forma periódica el uso de los recursos según 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. Luego, el controlador calcula el valor de uso como un porcentaje de la solicitud de recurso equivalente. La cantidad deseada de réplicas se calcula según la proporción del porcentaje actual y el porcentaje deseado. Puedes leer más sobre el algoritmo de ajuste de escala automático en la documentación de Kubernetes.
Métricas
Kf usa el 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 el ajuste de escala automático está habilitado para una app de Kf, el controlador de Kf creará un objeto HPA en función de los límites y las reglas de escalamiento especificados en la app. Luego, el controlador HPA recupera las especificaciones del objeto HPA y escala la app según corresponda.
El objeto HPA se borrará si el ajuste de escala automático está inhabilitado o si se borra la app correspondiente.