![Fix Google Maps werkt niet op iPhone](/f/2faef74bbdd63598ddab9b2ac37f7ac4.png?width=100&height=100)
Kubectl is een opdrachtregelhulpprogramma in Kubernetes gebruikt om commando's tegen uit te voeren Kubernetes clusters. U kunt het gebruiken om een breed scala aan taken uit te voeren, waaronder het implementeren van applicaties/microservices, het bekijken en beheren van bronnen, het inspecteren van logbestanden, en zoveel meer.
In deze zelfstudie komen we veelgebruikte functies tegen kubectl commando's voor het beheren van een Kubernetes (K8S) TROS.
Wij gebruiken Minikubus op Kubuntu 22.04 als onze lokale Kubernetes TROS.
In Kubernetes, objecten zijn persistente entiteiten die ervoor zorgen dat uw cluster de gewenste status bereikt. Het zijn de bouwstenen van uw workloads in een cluster. Objecten omvatten replicasets, implementaties, pods, daemonsets, services, naamruimten, configuratiemaps en geheimen, en persistente volumes om er maar een paar te noemen.
De meest gebruikelijke manier om objecten te maken is met behulp van een YAML manifest-bestand meestal met een .yaml
of .yml
bestandsextensie.
Om een object te maken van een YAML manifest-bestand, voer uit:
$ kubectl apply -f ./file1.yaml.
Resources maken van meerdere YAML bestanden, voer uit:
$ kubectl apply -f ./file1.yaml -f ./file2.yaml
Om bronnen te maken van alle manifestbestanden in een map, voert u het volgende uit:
$ kubectl apply -f ./dir
Voer het volgende uit om bronnen van een URL te maken:
$ kubectl apply -f https://sample-url.io.
A knooppunt is een fysieke of virtuele machine waarop pods en andere bronnen die uw workload ondersteunen, worden uitgevoerd. Elk knooppunt wordt beheerd door een hoofdknooppunt dat bekend staat als een controlepaneel die meerdere services bevat die nodig zijn om pods uit te voeren. Een cluster heeft doorgaans meerdere knooppunten.
Voer het volgende uit om het aantal knooppunten in uw cluster te krijgen:
$ kubectl get nodes.
Voer het volgende uit om de pods op een knooppunt te laten werken:
$ kubectl get pods -o wide | grep
Om uw node als niet-planbaar te markeren, voert u uit.
$ kubectl cordon minikubenode/minikube cordoned
Om uw node als planbaar te markeren, voert u uit.
$ kubectl uncordon minikubenode/minikube uncordoned
Om metrische gegevens over het gebruik van resources weer te geven, zoals RAM En CPU loop:
$ kubectl top node
Voer de volgende opdracht uit om een knooppunt of meerdere knooppunten te verwijderen:
$ kubectl delete node
A Kubernetes-cluster is een groep knooppunten of servers die containertoepassingen uitvoeren. Een knooppunt kan een of meerdere pods uitvoeren die een of meer actieve containers bevatten.
Om informatie over de meester.
$ kubectl cluster-info.
Om de kubectl versie.
$ kubectl version --short.
Kubernetes-clusterconfiguratie weergeven.
$ kubectl config view.
Om contexten weer te geven.
$ kubectl config get-contexts.
Om beschikbare API-bronnen weer te geven.
$ kubectl api-resources.
Om beschikbare API-versies weer te geven.
$ kubectl api-versions.
In Kubernetes, A peul is de kleinste inzetbare eenheid die u in een cluster kunt maken en beheren. Een pod bevat een groep containers met gedeelde volumes en netwerkbronnen, naast instructies voor het uitvoeren van de toepassing.
Peulen zijn kortstondig en wegwerpbaar, wat betekent dat ze van korte duur zijn en dus niet lang meegaan. Daarom is de beste benadering om pods te implementeren het gebruik van de declaratieve configuratie met behulp van een YAML-bestand.
Dit is reproduceerbaarder en handiger omdat het hergebruikt kan worden. Bovendien zorgt het ervoor dat bronnen die in het YAML-bestand zijn gedefinieerd, constant worden gecontroleerd door Kubernetes en werken zoals gespecificeerd.
Voer de volgende opdracht uit om de lijst met actieve pods in uw cluster te krijgen:
$ kubectl get pods.
Voer het volgende uit om pods naast hun labels weer te geven:
$ kubectl get pods --show-labels.
Voer het volgende uit om alle pods in alle naamruimten weer te geven:
$ kubectl get pods --all-namespaces.
Om pods in de huidige naamruimte en met meer details weer te geven, voegt u de -o
brede parameters.
$ kubectl get pods -o wide.
Voer het volgende uit om de gedetailleerde status van een specifieke pod weer te geven:
$ kubectl describe pod
Voer de volgende opdracht uit om een label aan een pod toe te voegen:
$ kubectl label pods my-pod new-label=awesome.
Voer het volgende uit om het label te verwijderen:
$ kubectl label pods my-pod new-label-
Voer de volgende opdracht uit om een interactieve shell te krijgen met een containerpod:
$ kubectl exec -it/bin/sh.
Voer het volgende uit om een specifieke pod te verwijderen:
$ kubectl delete pod
A ReplicaSet (RS) zorgt ervoor dat er altijd een stabiel aantal lopende pods is. Het garandeert de beschikbaarheid van een specifiek aantal pods zoals gedefinieerd in het YAML-manifestbestand.
Om het aantal te krijgen ReplicaSets voer in een cluster de opdracht uit:
$ kubectl get replicasets.
Voer de volgende opdracht uit om meer informatie over een specifieke replicaset te krijgen:
$ kubectl describe replicasets
Een service is een netwerkabstractie via een pod. Services bieden detectie en routering tussen pods. Een service kan bijvoorbeeld de front-end van een applicatie verbinden met de back-end, elk in afzonderlijke implementaties.
Om de uitgevoerde services weer te geven:
$ kubectl get services.
Voer de volgende opdracht uit voor meer informatie over service:
$ kubectl describe services.
Een serviceaccount is een object dat door een pod in een cluster wordt gebruikt om toegang te krijgen tot de Kubernetes API-server.
Voer het volgende uit om de serviceaccounts weer te geven:
$ kubectl get serviceaccounts.
Voer het volgende uit om meer gedetailleerde informatie over het serviceaccount te krijgen:
$ kubectl describe serviceaccounts.
Gebruik de volgende syntaxis om een serviceaccount te verwijderen.
$ kubectl delete serviceaccounts
Naamruimten zijn eenheden die een middel bieden waarmee een enkel cluster verder kan worden onderverdeeld in meerdere subclusters die vervolgens afzonderlijk kunnen worden beheerd.
Om naamruimten weer te geven, voert u het volgende uit:
$ kubectl get namespaces.
Gebruik de syntaxis om gedetailleerde informatie over een naamruimte weer te geven:
$ kubectl describe namespace
Voer de volgende opdracht uit om een naamruimte te maken:
$ kubectl create namespace
Voer de volgende opdracht uit om een naamruimte te bewerken of aan te passen:
$ kubectl edit namespace
Om het resourcegebruik van een naamruimterun weer te geven:
$ kubectl top namespace
Voer de volgende opdracht uit om een naamruimte te verwijderen:
$ kubectl delete namespace
In Kubernetes, geheimen is een object dat gevoelige en vertrouwelijke informatie bevat, zoals gebruikersnamen en wachtwoorden.
Voer de volgende opdracht uit om bestaande geheimen weer te geven:
$ kubectl get secret.
Om gedetailleerde informatie over bestaande geheimen weer te geven, voert u uit:
$ kubectl describe secrets.
Ren om een geheim te maken
$ kubectl create secret [flags] [options]
Voer het volgende uit om een geheim te verwijderen:
$ kubectl delete secret
A inzet is een object waarmee u de gewenste status van uw toepassing kunt aangeven. U kunt het aantal replica's, de afbeelding voor de pods, het aantal pods en andere bronnen definiëren.
Voer de opdracht uit om het aantal implementaties te krijgen:
$ kubectl get deployment.
Maak een lijst van de gedetailleerde status van een specifieke implementatie.
$ kubectl describe deployment
Voer de volgende opdracht uit om een implementatie te verwijderen:
$ kubectl delete deployment
Voer de opdracht uit om een nieuwe implementatie te maken:
$ kubectl create deployment
In Kubernetes, een evenement is een object dat wordt gegenereerd als reactie op een wijziging in de status van een bron, zoals een pod, container of knooppunt. Een goed voorbeeld is de wijziging van de status van een pod van in behandeling naar actief, of geslaagd naar mislukt.
Voer het volgende uit om alle gebeurtenissen weer te geven:
$ kubectl get events.
Om gebeurtenissen weer te geven maar pod-gebeurtenissen uit te sluiten, voert u de volgende opdracht uit:
$ kubectl get events --field-selector involvedObject.kind!=Pod.
Om gebeurtenissen naast hun tijdstempels weer te geven en gesorteerd op tijdstip van aanmaak, voert u het volgende uit:
$ kubectl get events --sort-by=.metadata.creationTimestamp.
Logboeken zijn van cruciaal belang bij het vastleggen van clustergebeurtenissen en helpen bij het debuggen en oplossen van fouten. U kunt de breedsprakigheid van logboeken bekijken of configureren met behulp van de volgende opdrachten:
Om logboeken voor een specifieke pod-run af te drukken:
$ kubectl logs
Om de real-time logboeken voor een specifieke pod af te drukken en te volgen:
$ kubectl logs -f
Voer het volgende uit om logboeken voor een pod af te drukken voor de afgelopen X uur, bijvoorbeeld 3 uur:
$ kubectl logs --since=3h
Als u logboeken wilt afdrukken voor een specifieke container in een pod, voert u het bestand uit
$ kubectl logs -c
Genereer de meest recente 20 regels logboeken
$ kubectl logs --tail=20
Genereer logboeken van een pod en sla de logboeken op in een logbestand met de naam pod.log
$ kubectl logspod.log.
Dat was een algemeen overzicht van enkele van de meest gebruikte kubectl commando's voor het beheer van een Kubernetes TROS.