Kubectl Autoscale Command

Kubectl Autoscale Command



Kubernetes bietet Autoskalierungsfunktionen zur automatischen Verwaltung der Ressourcen ohne menschliches Eingreifen. Die Autoscaling-Funktion ändert bei Bedarf automatisch die Anzahl der Knoten und spart Ressourcen. In diesem Artikel erfahren Sie, wie Sie den Befehl „kubectl autoscale“ und die automatische Skalierung „HorizontalPodScaler“ bereitstellen. Dieses Tutorial vermittelt dieses wichtige Konzept im Detail. Lassen Sie uns zunächst besprechen, was das Kubectl-Autoscale-Konzept ist, und gehen Sie dann zum besseren Verständnis zum Schritt-für-Schritt-Prozess über. Dieser Artikel ist sehr nützlich, wenn Sie mit dem Konzept der automatischen Kubernetes-Skalierung noch nicht vertraut sind.

Was ist Kubectl Autoscale?

Autoscaling ist die Hauptfunktion im Kubernetes-Cluster, die dafür sorgt, dass die Ressourcen automatisch aktualisiert werden, ohne dass eine manuelle Aktualisierung erforderlich ist. Es ist ein sehr zeit- und ressourcenraubender Prozess, die anspruchsvollen Ressourcen manuell zu aktualisieren. Die automatische Skalierung von Kubernetes bietet eine automatische Möglichkeit zur Optimierung der Ressourcen.

Autoscaler kann die Anzahl der Knoten je nach Bedarf erstellen und zerstören. Autoscale reduziert die Verschwendung von Ressourcen. Die Kubectl-Autoskalierung wählt automatisch die Pods aus, die derzeit im Kubernetes-Cluster ausgeführt werden.







Es gibt zwei Arten der Skalierung: (1) HorizontalPodScaler und (2) Vertical Scaler. Der horizontale Skalierer unterscheidet sich vom vertikalen Skalierer. Der HorizontalPodScaler hilft bei Bedarf bei der Verkleinerung oder Vergrößerung von Pods. Andererseits beansprucht der Vertical Scaler Ressourcen wie CPU und Speicher.



Hier finden Sie alle Schritte, die Sie in Ihrem System ausführen und die Ausgabe zum besseren Verständnis sehen können.



Schritt 1: Starten eines Minikube-Clusters

Starten Sie im ersten Schritt das Minikube-Tool, um den Kubernetes-Cluster auszuführen, damit wir den Befehl „kubectl autoscale“ ausführen können. Mit dem Minikube-Cluster können Sie Ihre Knoten, Pods und sogar einen Cluster in der Kubernetes-Umgebung einrichten. Verwenden Sie dazu den folgenden Befehl, um den Minikube im aktiven Modus zu halten:





~$ minikube start

Wie Sie im folgenden Ausgabe-Screenshot sehen können, aktiviert dieser Befehl den Minikube-Cluster und macht die Kubernetes-Umgebung nutzbar:

Schritt 2: Holen Sie sich die Pod-Details

In diesem Schritt wird der Kubernetes-Cluster erfolgreich ausgeführt. Jetzt erhalten wir die Pod-Details im Cluster. Der Pod in Kubernetes ist die Sammlung von Einheiten, die Ressourcen gemeinsam nutzen. Das folgende Skript wird ausgeführt, indem Sie den folgenden Befehl in Ihrem Minikube-Cluster ausführen:

~$ kubectl holt Pods

Mit dem vorherigen Befehl „kubectl get pods“ können wir die Liste aller Pods abrufen, die im Kubernetes-Cluster ausgeführt werden.

Nachdem wir den Befehl „get pods“ ausgeführt haben, erhalten wir die folgende Ausgabe:

  Ein Screenshot einer Computerprogrammbeschreibung, die automatisch mit geringer Zuverlässigkeit erstellt wurde

Schritt 3: Holen Sie sich die Pod-Bereitstellungen

Im vorherigen Befehl „kubectl get pods“ erhalten wir die Details von Pods. Jetzt verwenden wir den Befehl „get reporting“, um die Liste der erstellten Bereitstellungen abzurufen. Hierzu wird folgendes Skript ausgeführt:

~$ kubectl erhält Bereitstellungen

Nach der Ausführung des Befehls zeigt der folgende Screenshot die Ausgabe:

Schritt 4: Autoscale-Bereitstellung

Der Befehl „Autoscale“ wird verwendet, um die automatisierte Auswahl von Pods vorzunehmen, die im Cluster ausgeführt werden. Durch die Bereitstellung der automatischen Skalierung im Cluster fügen wir die Anzahl der Knoten automatisch ein und beenden sie. Das folgende Skript wird im Minikube-Cluster ausgeführt und zeigt den Dateinamen, die minimale Anzahl der Pods und die maximale Anzahl der Pods an, wobei die Anzahl der Pods zwischen 2 und 10 liegen sollte:

~$ Kubectl Autoscale-Bereitstellung nginx1-deployment1 --Mindest = 2 --max = 10

Nach Ausführung des Befehls wird folgende Ausgabe generiert:

Schritt 5: Erstellen Sie eine Kubernetes-YAML-Datei

In diesem Schritt erfahren Sie, wie Sie die YAML-Datei im Cluster erstellen. Die YAML-Datei ist nützlich für die Bereitstellung und Anwendungstests. In Kubernetes gibt es verschiedene Arten, die Datei zu erstellen und zu bearbeiten.

In diesem Artikel verwenden wir den Befehl „nano“ zum Erstellen der YAML-Datei, da dies der einfachste Weg und die beste Wahl für Anfänger ist.

Befolgen Sie die hier angegebenen Schritte, um eine YAML-Datei mit nano zu erstellen:

  • Um eine neue Datei zu erstellen oder eine vorhandene zu ändern, navigieren Sie zum gewünschten Verzeichnisspeicherort.
  • Geben Sie „nano“ ein. Geben Sie anschließend den Namen der Datei ein. Wenn Sie beispielsweise einen neuen Dateinamen erstellen möchten, notieren Sie den Namen: „deploo.yaml“.

Führen Sie das folgende Skript aus und erstellen Sie eine YAML-Datei im Projektverzeichnis:

~$ nano deploo.yaml

Nach dem Erstellen der Datei „deploo.yaml“ besteht der nächste Schritt darin, die YAML-Datei zu konfigurieren. Wir erklären es im folgenden Schritt.

Schritt 6: Inhalt der YAML-Datei

In diesem Schritt können wir den Apache-Server und die PHP-Dateien einfach konfigurieren. Bevor wir den HorizontalPodScaler verwenden, müssen wir den Workload-Monitor konfigurieren. Wie der folgende Codeabschnitt die kind:deployment zeigt, ist der Port des Webbrowsers 90 und das CPU-Limit 200 m.

Die vollständigen Informationen zur Datei „deploo.yaml“ finden Sie hier:

apiVersion : apps/v1
Art
: Einsatz
Metadaten
:
Name
: php
spez
:
Wähler
:
matchLabels
:
laufen
: PHP-Apache
Vorlage
:
Metadaten
:
Etiketten
:
laufen
: PHP-Apache
spez
:
Behälter
:
- Name
: php
Bild
: Registry.k8s.io/hpa-example
Häfen
:
- ContainerPort
: 90
Ressourcen
:
Grenzen
:
Zentralprozessor
: 200m
Anfragen
:

Zentralprozessor
: 100m
---
apiVersion
: v1
Art
: Service
Metadaten
:
Name
: php
Etiketten
:
laufen
: PHP-Apache
spez
:
Häfen
:
- Hafen
: 70
Wähler
:
laufen
: PHP-Apache

Schritt 7: Erstellen Sie die Bereitstellung

In diesem Schritt erstellen wir die YAML-Datei mit dem Namen „deploo.yaml“. Das folgende Skript wird im Minikube-Cluster ausgeführt:

~$ kubectl create -f deploo.yaml

Die Ausgabe des oben genannten Befehls, den wir ausgeführt haben, ist im folgenden Screenshot zu sehen. Die Ausgabe zeigt an, dass die YAML-Datei erstellt wurde:

Schritt 8: Erstellen Sie den HorizontalPodScaler

In diesem Schritt zeigen wir Ihnen den Befehl zum Erstellen des HorizontalPodAutoscaler. Das Einsetzen und Beenden der Pods erfolgt je nach Bedarf automatisch. Sie unterscheidet sich von der vertikalen Skalierung, bei der die CPU- und Speicherressourcen durch Autoskalierung zugewiesen werden. Das folgende Skript wird im Minikube-Cluster ausgeführt:

~$ kubectl Autoscale Deployment PHP -- Zentralprozessor - Prozent = fünfzig -- Mindest = 10 –max = zwanzig

Hier sehen Sie, dass wir die Werte für Minimum und Maximum auf 10 und 20 setzen.

Im Anhang finden Sie die Ausgabe des vorherigen Befehls:

Schritt 9: Überprüfen Sie den HorizontalPodScaler

In diesem Schritt überprüfen wir den aktuellen Status des neu erstellten HorizontalPodAutoscaler. Der folgende Befehl wird ausgeführt:

~$ Kubectl bekommt HPA

Abschluss

Eine der nützlichsten Funktionen von Kubernetes ist die „kubectl autoscale“, die automatische Ressourcenaktualisierungen im Kubernetes-Cluster bereitstellt. Autoscaler hilft, wenn ein Cluster die Anzahl der Pods vergrößern oder verringern muss. In diesem Artikel haben wir die beiden Autoscaling-Methoden kennengelernt – eine ist der Standard-Autoscaler und die andere ist der HorizontalPodScaler.

Zuerst haben wir die Pods bereitgestellt und deklariert. Anschließend haben wir den Autoscaler erstellt und den Apache-Server so konfiguriert, dass er den Workload-Monitor vor dem HorizontalPodScaler bereitstellt. Danach haben wir eine YAML-Datei und den HorizontalPodScaler erstellt. Dieser Artikel konzentrierte sich auf die detaillierten Schritte zum Erstellen, Konfigurieren und Bereitstellen der automatischen Skalierung von Kubernetes.