Cos'è HPA in Kubernetes?
HPA è l'acronimo di Autoscaler di POD orizzontale in Kubernetes e modifica la struttura del carico di lavoro del traffico di Kubernetes aumentando automaticamente il numero di pod in base alla capacità di utilizzo della CPU. Contrariamente alla modifica delle risorse assegnate a un singolo contenitore, questo ridimensionamento viene eseguito in orizzontale perché influisce sul numero totale di istanze della CPU.
Come funziona HPA in Kubernetes?
Siamo tutti consapevoli che la CPU gestisce i processi. Non appena distribuiamo e impostiamo le repliche, i demoni sono tutti impostati e possiamo aggiungere manualmente più pod al set di distribuzione o replica. Kubernetes fornisce automaticamente POD orizzontale per automatizzare questo processo. HPA è il controller che viene utilizzato per controllare l'utilizzo della CPU attraverso l'automazione. Un'applicazione Kubernetes si ridimensiona automaticamente in base ai carichi di lavoro. Se il numero di traffico diminuisce e l'utilizzo della CPU diminuisce, si ridimensiona. L'applicazione Kubernetes si ridimensiona quando i carichi di lavoro aumentano creando più repliche dell'applicazione Kubernetes.
Prerequisiti:
Di seguito sono necessari per eseguire l'HPA nella tua applicazione Kubernetes:
In questo articolo, impareremo ogni dettaglio del passo con esempi utili. Se sei un principiante, questo è il posto giusto per imparare i metodi Kubernetes. Spiegheremo il processo di configurazione HPA in diversi passaggi. Cominciamo!
Passaggio 1: startup container Kubernetes
In questo passaggio, iniziamo con il contenitore Kubernetes che è un minikube. Eseguiamo il seguente comando per avviare il minikube:
> Minikube StartMinikube inizia dopo l'esecuzione del comando. Minikube ci fornisce un contenitore Kubernetes locale in cui eseguiamo diverse azioni.
Passaggio 2: eseguire il server Php-Apache nel file YAML
In questo passaggio, creiamo un file di configurazione dopo che un contenitore è stato creato per avviare una distribuzione. Eseguiamo il seguente comando per creare un file YAML:
> nano php.YamlQuanto segue è l'esecuzione del comando menzionato nello screenshot allegato.
Il file di configurazione contiene diversi tipi di dati come il nome del file, le specifiche dei contenitori e le specifiche del selettore. Questo contenitore funziona con l'aiuto di "Registro.K8S.Immagine IO/HPA-Example "come possiamo vedere nella seguente screenshot:
Questa è anche la parte del file Yaml:
Passaggio 3: creare una distribuzione e servizi in Kubernetes
In questo passaggio, creiamo una distribuzione e lo dichiariamo come servizio utilizzando lo screenshot allegato. Eseguiamo il seguente comando nel terminale:
> kubectl applica -f php.YamlDopo questa esecuzione del comando, viene creato il server di distribuzione PHP-Apache. Insieme a questo, il servizio viene creato correttamente.
Passaggio 4: creare un Autoscaler di pod orizzontale in Kubernetes
In questo passaggio, creiamo un AutoScaler POD orizzontale utilizzando KubeCtl sul server di distribuzione. A tale scopo, eseguiamo il seguente comando:
> Kubectl Distribuzione automatica Php -Apache - -CPU -Percent = 50 -min = 1 -max = 10Quando eseguiamo questo comando, il Pod Autoscaler orizzontale viene creato correttamente. Nel comando precedente, inizializziamo anche i valori Min e Max. Ciò significa che il Pod Autoscaler orizzontale viene mantenuto tra 1 e 10 repliche del pod. Questo è tutto controllato dal server Php-Apache di distribuzione.
Passaggio 5: selezionare lo stato di Autoscaler del baccello orizzontale in Kubernetes
In questo passaggio, vogliamo ottenere o controllare lo stato di HPA - se un HPA è presente in Kubernetes o no. Eseguiamo il comando allegato per questo scopo:
> kubectl prendi HPACome abbiamo visto nello screenshot precedentemente attaccato, un HPA è presente nel nostro contenitore e il suo nome è "PHP-Apache". Il riferimento di questo pod è "distribuzione/php-apache". Gli obiettivi ci mostrano che il consumo di CPU di questo POD è sconosciuto al 50%, il che significa che non viene ricevuta alcuna richiesta del cliente. Il numero minimo di pod è 1 e il numero massimo di baccelli è 10. Le repliche sono "0" e l'età di questo pod è "7s".
Passaggio 6: aumentare un carico di lavoro o un traffico nel server
In questo passaggio, ci connettiamo alla distribuzione precedentemente creata per creare un pod e controllare l'HPA nell'ambiente reale per vedere se l'HPA può gestire le risorse o no. Aumentiamo anche il carico sul cluster eseguendo il comando successivo seguente:
> kubectl run -i -tty carico -generatore -rm -image = busybox: 1.28 -Restart = mai - /bin /sh -c “While sleep 0.01; do wget -q -o- http: // php -apache; Fatto"Passaggio 7: guarda l'HPA dopo l'esecuzione
Possiamo facilmente guardare l'elenco di HPA eseguendo il seguente comando:
> Kubectl Ottieni HPA PHP-Apache-WatchDopo aver eseguito il comando precedentemente menzionato, il risultato appare lo stesso del passaggio 6 di questo articolo.
Passaggio 8: mostra la distribuzione di Kubernetes
In questo passaggio, prendiamo l'elenco delle distribuzioni di Kubernetes semplicemente eseguendo il seguente comando:
> kubectl ottieni la distribuzione PHP-ApachePassaggio 9: creare più repliche
In questo passaggio, creiamo la replica dello stesso pod in Kubernetes con lo stesso comando:
> Kubectl Ottieni HPA PHP -Apache -WatchQuesto comando osserva il dettaglio del pod dopo l'esecuzione. Possiamo vedere questo dettaglio del pod nello screenshot precedentemente menzionato.
Passaggio 10: arruola nuovamente la distribuzione
In questo passaggio, eseguiamo lo stesso comando per mostrare la distribuzione. Il comando è il seguente:
> kubectl ottieni la distribuzione PHP-ApacheConclusione
Questo articolo parla di HPA. HPA fornisce una struttura per l'automazione correlata all'utilizzo della CPU. Abbiamo imparato ogni dettaglio passo-in per la configurazione HPA. Speriamo che capirai anche il funzionamento dell'HPA e puoi fare questa pratica nel tuo ambiente.