Kf sfrutta il gestore della scalabilità automatica dei pod orizzontali (HPA) di Kubernetes per scalare automaticamente il numero di pod in un'app. Quando la scalabilità automatica è abilitata per un'app, viene creato e associato all'oggetto App un oggetto HPA. Quindi calcola dinamicamente la scala target e la imposta per l'app.
Come funziona la scalatura Kf
Il numero di pod di cui viene eseguito il deployment per un'app Kf è controllato dal campo replica
dell'oggetto Deployment sottostante. Il numero di repliche di deployment target viene impostato tramite il campo replicas
dell'app.
Il ridimensionamento può essere eseguito manualmente con il comando kf scale
. Questo comando viene disattivato quando la scalabilità automatica è attiva per evitare target in conflitto.
Come funziona Horizontal Pod Autoscaler di Kubernetes
Horizontal Pod Autoscaler (HPA) è implementato come risorsa dell'API Kubernetes (l'oggetto HPA) e un loop di controllo (il controller HPA) che periodicamente calcola il numero di repliche desiderate in base all'utilizzo corrente delle risorse. Il controller HPA passa quindi il numero all'oggetto target che implementa la risorsa secondaria Scale. La scalabilità effettiva viene delegata all'oggetto sottostante e al suo controller. Puoi trovare ulteriori informazioni nella documentazione di Kubernetes.
In che modo il gestore della scalabilità determina quando eseguire la scalabilità
Periodicamente, il controller HPA esegue query sull'utilizzo delle risorse in base alle metriche specificate in ogni definizione di HorizontalPodAutoscaler. Il controller ottiene le metriche dall'API delle metriche delle risorse per ogni pod. Il controllore calcola quindi il valore di utilizzo come percentuale della richiesta di risorse equivalente. Il numero di repliche desiderato viene quindi calcolato in base al rapporto tra la percentuale corrente e la percentuale desiderata. Per saperne di più sull'algoritmo di scalabilità automatica, consulta la documentazione di Kubernetes.
Metriche
Kf utilizza HPA v1, che supporta solo la metrica CPU come target.
Come funziona Kubernetes Horizontal Autoscaler con Kf
Quando la scalabilità automatica è attivata per un'app Kf, il controller Kf crea un oggetto HPA in base ai limiti e alle regole di scalabilità specificati nell'app. Il controller HPA recupera le specifiche dall'oggetto HPA e esegue la scalabilità dell'app di conseguenza.
L'oggetto HPA verrà eliminato se la scalabilità automatica è disattivata o se viene eliminata l'app corrispondente.