Scalabilità automatica

Kf sfrutta l'Horizontal Pod Autoscaler (HPA) di Kubernetes per scalare automaticamente il numero di pod in un'app. Quando la scalabilità automatica è abilitata per un'app, viene creato un oggetto HPA e associato all'oggetto App. Quindi calcola dinamicamente la scala target e la imposta per l'app.

Come funziona la scalabilità 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 target di repliche di deployment viene impostato tramite il campo replicas dell'app.

La scalabilità può essere eseguita manualmente con il comando kf scale. Questo comando è disabilitato quando è abilitata la scalabilità automatica per evitare destinazioni in conflitto.

Come funziona il gestore della scalabilità automatica pod orizzontale di Kubernetes

Horizontal Pod Autoscaler (HPA) viene implementato come risorsa API Kubernetes (l'oggetto HPA) e ciclo di controllo (controller HPA) che calcola periodicamente il numero di repliche desiderate in base all'utilizzo attuale delle risorse. Il controller HPA passa quindi il numero all'oggetto di destinazione che implementa la sottorisorsa Scale. La scalabilità effettiva è delegata all'oggetto sottostante e al relativo controller. Puoi trovare ulteriori informazioni nella documentazione di Kubernetes.

In che modo il gestore della scalabilità automatica determina quando scalare

Periodicamente, il controller HPA esegue query sull'utilizzo delle risorse rispetto alle metriche specificate in ogni definizione di HorizontalPodAutoscaler. Il controller ottiene le metriche dall'API Resource Metrics per ogni pod. Quindi, il controller calcola il valore di utilizzo come percentuale della richiesta di risorsa equivalente. Il numero desiderato di repliche viene quindi calcolato in base al rapporto tra la percentuale attuale 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 CPU come metrica target.

Come funziona il gestore della scalabilità automatica orizzontale di Kubernetes con Kf

Quando la scalabilità automatica è abilitata per un'app Kf, il controller Kf crea un oggetto HPA in base alle regole e ai limiti di scalabilità specificati nell'app. Quindi, il controller HPA recupera le specifiche dall'oggetto HPA e scala l'app di conseguenza.

L'oggetto HPA verrà eliminato se la scalabilità automatica è disabilitata o se l'app corrispondente viene eliminata.