Wat is Kubectl automatisch schalen?
Autoscaling is de belangrijkste functie in het Kubernetes-cluster, waardoor de resources automatisch worden bijgewerkt zonder dat u dit handmatig hoeft te doen. Het is een zeer tijd- en middelenverspillend proces om de veeleisende bronnen handmatig bij te werken. Kubernetes autoscaling biedt een automatische mogelijkheid om de bronnen te optimaliseren.
Autoscaler kan het aantal knooppunten maken en vernietigen volgens de vereisten. Autoscale vermindert de verspilling van middelen. De Kubectl autoscale kiest automatisch de pods die momenteel worden uitgevoerd binnen het Kubernetes-cluster.
Er zijn twee soorten schaling: (1) HorizontalPodScaler en (2) Vertical scaler. De horizontale scaler is anders dan de verticale scaler. De HorizontalPodScaler helpt bij het verkleinen of vergroten van pods wanneer dat nodig is. Aan de andere kant gebruikt de verticale scaler bronnen zoals CPU en geheugen.
Hier zijn alle stappen die u in uw systeem kunt volgen en bekijk de uitvoer voor een beter begrip.
Stap 1: een Minikube-cluster starten
Start in de eerste stap de minikube-tool om het Kubernetes-cluster uit te voeren, zodat we de opdracht 'kubectl autoscale' kunnen uitvoeren. U kunt uw knooppunten, pods en zelfs een cluster instellen in de Kubernetes-omgeving met behulp van het minikube-cluster. Gebruik hiervoor de volgende opdracht om de minikube in actieve modus te houden:
~$ start minikube
Zoals u kunt zien in de volgende uitvoerscreenshot, schakelt deze opdracht het minikube-cluster in en maakt de Kubernetes-omgeving bruikbaar:
Stap 2: Verkrijg de Pod-details
In deze stap wordt het Kubernetes-cluster met succes uitgevoerd. Nu krijgen we de poddetails in het cluster. De pod in Kubernetes is de verzameling eenheden die resources delen. Het volgende script wordt uitgevoerd door de volgende opdracht uit te voeren in uw minikube-cluster:
~$ kubectl krijgt podsMet behulp van de vorige opdracht, namelijk 'kubectl get pods', kunnen we de lijst ophalen met alle pods die in het Kubernetes-cluster worden uitgevoerd.
Na het uitvoeren van de opdracht 'get pods', verkrijgen we de volgende uitvoer:
Stap 3: Verkrijg de implementaties van Pod
In de vorige opdracht 'kubectl get pods' krijgen we de details van pods. Nu gebruiken we de opdracht 'implementatie ophalen' om de lijst met gemaakte implementaties te verkrijgen. Hiervoor wordt het volgende script uitgevoerd:
~$ kubectl implementaties ophalenNa het uitvoeren van de opdracht toont de volgende schermafbeelding de uitvoer:
Stap 4: Implementatie automatisch schalen
De opdracht automatisch schalen wordt gebruikt om de automatiseringsselectie te maken van pods die in het cluster worden uitgevoerd. Door automatisch schalen in het cluster te implementeren, voegen we automatisch het aantal knooppunten toe en beëindigen we het. Het volgende script wordt uitgevoerd in het minikube-cluster en toont de bestandsnaam, het minimum aantal pods en het maximum aantal pods waar de pods tussen 2 en 10 moeten zijn:
~$ kubectl autoscale implementatie nginx1-deployment1 --min = 2 --max = 10Na het uitvoeren van de opdracht wordt de volgende uitvoer gegenereerd:
Stap 5: Maak een Kubernetes YAML-bestand
In deze stap leert u het YAML-bestand in het cluster te maken. YAML-bestand is handig voor implementatie en het testen van applicaties. Er zijn verschillende typen in Kubernetes om het bestand te maken en te bewerken.
In dit artikel gebruiken we de opdracht 'nano' om het YAML-bestand te maken, omdat dit de gemakkelijkste manier en de beste keuze is voor beginners.
Volg de gegeven stappen hier om een YAML-bestand te maken met nano:
- Om een nieuw bestand aan te maken of een bestaand bestand te wijzigen, navigeert u naar de gewenste maplocatie.
- Typ 'nano' in. Schrijf daarna de naam van het bestand. Als u bijvoorbeeld een nieuwe bestandsnaam wilt maken, noteert u de naam - 'deploo.yaml'.
Voer het volgende script uit en maak een YAML-bestand in de projectdirectory:
~$ nano deploo.yamlNa het maken van het bestand 'deploo.yaml', is de volgende stap het configureren van het YAML-bestand. We leggen het uit in de volgende stap.
Stap 6: Inhoud van het YAML-bestand
In deze stap kunnen we eenvoudig de Apache-server en PHP-bestanden configureren. Voordat we de HorizontalPodScaler gebruiken, moeten we de werklastmonitor configureren. Zoals het volgende stukje code de soort:deployment laat zien, is de poort van de webbrowser 90 en de CPU-limiet 200m.
U kunt de volledige bestandsinformatie van 'deploo.yaml' hier bekijken:
apiVersie : toepassingen/v1vriendelijk : Inzet
metagegevens :
naam : php
spec :
kiezer :
matchLabels :
loop : php-apache
sjabloon :
metagegevens :
etiketten :
loop : php-apache
spec :
containers :
- naam : php
afbeelding : registry.k8s.io/hpa-voorbeeld
havens :
- containerhaven : 90
bronnen :
grenzen :
CPU : 200m
aanvragen :
CPU : 100 meter
---
apiVersie : v1
vriendelijk : Dienst
metagegevens :
naam : php
etiketten :
loop : php-apache
spec :
havens :
- poort : 70
kiezer :
loop : php-apache
Stap 7: Maak de implementatie
Laten we in deze stap het YAML-bestand met de naam 'deploo.yaml' maken. Het volgende script wordt uitgevoerd in het minikube-cluster:
~$ kubectl create -f deploo.yamlDe uitvoer van de bovengenoemde opdracht die we hebben uitgevoerd, is te zien in de onderstaande schermafbeelding. De uitvoer geeft aan dat het YAML-bestand is gemaakt:
Stap 8: Maak de HorizontalPodScaler
In deze stap laten we u de opdracht zien om de HorizontalPodAutoscaler te maken. De pods worden automatisch geplaatst en beëindigd, afhankelijk van de vraag. Het verschilt van verticaal schalen, waarbij de CPU- en geheugenresources worden toegewezen door automatisch schalen. Het volgende script wordt uitgevoerd in het minikube-cluster:
~$ kubectl autoscale implementatie php -- CPU - procent = vijftig -- min = 10 –max = twintigHier kunt u zien dat we de waarden voor minimum en maximum hebben ingesteld op 10 en 20.
Bijgevoegd is de uitvoer van het vorige commando:
Stap 9: Controleer de HorizontalPodScaler
In deze stap controleren we de huidige status van de nieuw gemaakte HorizontalPodAutoscaler. De volgende opdracht wordt uitgevoerd:
~$ kubectl krijg hpaConclusie
Een van de handigste functies van Kubernetes is de 'kubectl autoscale' die zorgt voor automatische bronupdates in het Kubernetes-cluster. Autoscaler helpt wanneer een cluster het aantal pods moet vergroten of verkleinen. In dit artikel hebben we de twee methoden voor automatisch schalen geleerd: de ene is de standaard autoscaler en de andere is de HorizontalPodScaler.
Eerst hebben we de pods ingezet en gedeclareerd. Vervolgens hebben we de autoscaler gemaakt en de Apache-server geconfigureerd om de workloadmonitor vóór de HorizontalPodScaler te implementeren. Daarna hebben we een YAML-bestand en de HorizontalPodScaler gemaakt. Dit artikel is gericht op de gedetailleerde stappen voor het maken, configureren en implementeren van Kubernetes voor automatisch schalen.