Che cos'è la scalabilità automatica di Kubectl?
La scalabilità automatica è la caratteristica principale del cluster Kubernetes che fa in modo che le risorse si aggiornino automaticamente senza il fastidio di farlo manualmente. È un processo molto dispendioso in termini di tempo e risorse aggiornare manualmente le risorse impegnative. La scalabilità automatica di Kubernetes fornisce una funzione automatica per ottimizzare le risorse.
Autoscaler può creare e distruggere il numero di nodi secondo i requisiti. La scalabilità automatica riduce lo spreco di risorse. La scalabilità automatica di Kubectl sceglie automaticamente i pod attualmente in esecuzione all'interno del cluster Kubernetes.
Esistono due tipi di ridimensionamento: (1) HorizontalPodScaler e (2) Vertical scaler. Lo scaler orizzontale è diverso dallo scaler verticale. HorizontalPodScaler aiuta a diminuire o aumentare i pod quando necessario. D'altra parte, lo scaler verticale utilizza risorse come CPU e memoria.
Ecco tutti i passaggi che puoi seguire nel tuo sistema e vedere l'output per una migliore comprensione.
Passaggio 1: avvio di un cluster Minikube
Nella prima fase, avvia lo strumento minikube per eseguire il cluster Kubernetes in modo da poter eseguire il comando 'kubectl autoscale'. Puoi configurare nodi, pod e persino un cluster nell'ambiente Kubernetes utilizzando il cluster minikube. Per fare ciò, usa il seguente comando per mantenere il minikube in modalità attiva:
~$ avviare minikube
Come puoi vedere nella seguente schermata di output, questo comando abilita il cluster minikube e rende utilizzabile l'ambiente Kubernetes:
Passaggio 2: ottenere i dettagli del pod
In questa fase, il cluster Kubernetes viene eseguito correttamente. Ora otteniamo i dettagli del pod nel cluster. Il pod in Kubernetes è la raccolta di unità che condivide le risorse. Il seguente script viene eseguito eseguendo il seguente comando nel tuo cluster minikube:
~$ kubectl ottieni i podUtilizzando il comando precedente che è 'kubectl get pods', possiamo ottenere l'elenco di tutti i pod eseguiti nel cluster Kubernetes.
Dopo aver eseguito il comando 'get pods', otteniamo il seguente output:
Passaggio 3: ottieni i deployment del pod
Nel precedente comando 'kubectl get pods', otteniamo i dettagli dei pod. Ora usiamo il comando 'get deployment' per ottenere l'elenco dei deployment creati. A tale scopo viene eseguito il seguente script:
~$ kubectl ottiene le distribuzioniDopo aver eseguito il comando, la seguente schermata mostra l'output:
Passaggio 4: distribuzione della scalabilità automatica
Il comando autoscale viene utilizzato per effettuare la selezione dell'automazione dei pod eseguiti nel cluster. Distribuendo la scalabilità automatica nel cluster, inseriamo e terminiamo automaticamente il numero di nodi. Il seguente script viene eseguito nel cluster minikube e mostra il nome del file, i pod minimi e i pod massimi dove i pod dovrebbero essere compresi tra 2 e 10:
~$ distribuzione di scalabilità automatica kubectl nginx1-deployment1 --min = 2 --max = 10Dopo aver eseguito il comando, viene generato il seguente output:
Passaggio 5: crea un file YAML Kubernetes
In questo passaggio imparerai a creare il file YAML nel cluster. Il file YAML è utile per la distribuzione e il test dell'applicazione. Esistono vari tipi in Kubernetes per creare e modificare il file.
In questo articolo, utilizziamo il comando 'nano' per creare il file YAML perché è il modo più semplice e la scelta migliore per i principianti.
Segui i passaggi indicati qui per creare un file YAML utilizzando nano:
- Per creare un nuovo file o modificarne uno esistente, accedere alla posizione della directory desiderata.
- Digita 'nano'. Successivamente, scrivi il nome del file. Ad esempio, se desideri creare un nuovo nome file, annota il nome 'deploo.yaml'.
Esegui il seguente script e crea un file YAML nella directory del progetto:
~$ nanodeploo.yamlDopo aver creato il file 'deploo.yaml', il passaggio successivo è configurare il file YAML. Lo spieghiamo nel passaggio successivo.
Passaggio 6: contenuto del file YAML
In questo passaggio, possiamo facilmente configurare il server Apache e i file PHP. Prima di utilizzare HorizontalPodScaler, dobbiamo configurare il monitor del carico di lavoro. Poiché la seguente parte di codice mostra il kind:deployment, la porta del browser Web è 90 e il limite della CPU è 200 m.
Puoi vedere le informazioni complete sul file 'deploo.yaml' qui:
apiVersion : applicazioni/v1Tipo : Distribuzione
metadati :
nome : php
spec :
selettore :
matchLabels :
correre : php-apache
modello :
metadati :
etichette :
correre : php-apache
spec :
contenitori :
- nome : php
Immagine : registry.k8s.io/hpa-example
porti :
- containerPort : 90
risorse :
limiti :
processore : 200 m
richieste :
processore : 100 m
---
apiVersion : v1
Tipo : Servizio
metadati :
nome : php
etichette :
correre : php-apache
spec :
porti :
- porto : 70
selettore :
correre : php-apache
Passaggio 7: creare la distribuzione
In questo passaggio, creiamo il file YAML denominato 'deploo.yaml'. Il seguente script viene eseguito nel cluster minikube:
~$ kubectl create -f deploo.yamlL'output del suddetto comando che abbiamo eseguito può essere visto nello screenshot che segue. L'output indica che il file YAML è stato creato:
Passaggio 8: creare HorizontalPodScaler
In questo passaggio, ti mostreremo il comando per creare HorizontalPodAutoscaler. Le cialde vengono inserite e terminate automaticamente a seconda della richiesta. È diverso dal ridimensionamento verticale, per cui le risorse della CPU e della memoria vengono assegnate tramite il ridimensionamento automatico. Il seguente script viene eseguito nel cluster minikube:
~$ distribuzione di scalabilità automatica kubectl php -- processore - per cento = cinquanta -- min = 10 –max = ventiQui puoi vedere che impostiamo i valori minimo e massimo a 10 e 20.
In allegato l'output del comando precedente:
Passaggio 9: controlla HorizontalPodScaler
In questo passaggio, controlliamo lo stato attuale di HorizontalPodAutoscaler appena creato. Viene eseguito il seguente comando:
~$ kubectl ottieni hpaConclusione
Una delle funzionalità più utili di Kubernetes è il 'kubectl autoscale' che fornisce aggiornamenti automatici delle risorse nel cluster Kubernetes. Autoscaler aiuta quando un cluster deve aumentare o ridurre i pod. In questo articolo, abbiamo appreso i due metodi di scalabilità automatica: uno è l'autoscaler predefinito e l'altro è HorizontalPodScaler.
Innanzitutto, abbiamo distribuito i pod e li abbiamo dichiarati. Quindi, abbiamo creato l'autoscaler e configurato il server Apache per distribuire il monitor del carico di lavoro prima di HorizontalPodScaler. Successivamente, abbiamo creato un file YAML e HorizontalPodScaler. Questo articolo è incentrato sui passaggi dettagliati di creazione, configurazione e distribuzione di Kubernetes con scalabilità automatica.