Kubernetes ist ein robuster und leistungsstarker Orchestrator für Containeranwendungen, aber auch komplex und manchmal schwer zu handhaben. Wenn Sie mit Kubernetes arbeiten, ist es wichtig, über ein effizientes und benutzerfreundliches Tool zur Verwaltung Ihrer Cluster zu verfügen. Hier kommt K9s ins Spiel: ein leistungsstarkes terminalbasiertes Tool, das die Kubernetes-Clusterverwaltung einfacher und zugänglicher machen soll.
In diesem Artikel werden K9s, seine wichtigsten Funktionen und die Art und Weise erläutert, wie es Ihr Kubernetes-Cluster-Management-Erlebnis erheblich verbessern kann. Wir behandeln die Grundlagen der Navigation durch das Tool, der Anpassung seiner Benutzeroberfläche und der Erweiterung seiner Funktionalität mit Plugins. Am Ende dieses Artikels werden Sie ein solides Verständnis dafür haben, wie K9s Ihnen dabei helfen kann, Ihre Kubernetes-Cluster und die darin ausgeführten Ressourcen effizienter und effektiver zu verwalten.
Dabei können Sie alle Funktionen nutzen, die Ihnen K9s bietetkubectl
Befehle werden einige Benutzer das visuelle Layout von K9s als viel zugänglicher empfinden. Praktischerweise müssen Sie sich auch nicht die Reihenfolge der Argumente und die Argumente eines bestimmten Arguments merkenkubectl
Befehl erfordert!
Voraussetzungen
Bevor Sie sich mit diesem K9s-Leitfaden befassen, stellen Sie sicher, dass Sie die folgenden Schritte ausgeführt haben:
- Civo-Konto
- Erstellen und konfigurieren Sie Ihr erstesKubernetes-Cluster
- Stellen Sie nach dem Einrichten Ihres Clusters sicher, dass Sie Ihre kubeconfig-Datei gespeichert haben, da Sie sie benötigen, um dieser Anleitung zu folgen.
Hinweis: Dieser Leitfaden konzentriert sich auf die tägliche Nutzung und Verwaltung von Kubernetes-Clustern mit K9s. Wenn Sie sich darauf vorbereitenPrüfung zum Certified Kubernetes Administrator (CKA)., Sie müssen ein starkes Verständnis davon habenkubectl.
Was ist K9s?
K9s ist ein befehlszeilenbasiertes Dienstprogramm zur Verwaltung und Überwachung von Kubernetes-Clustern. Es bietet eine visuelle Schnittstelle, mit der Benutzer ihre Kubernetes-Ressourcen wie Pods, Bereitstellungen und Dienste auf intuitivere und benutzerfreundlichere Weise anzeigen und verwalten können als mitkubectl
Befehlszeilentool. K9s bieten außerdem Funktionen wie Ressourcenfilterung, Inline-Bearbeitung sowie Ressourcenverwaltungs- und Bereitstellungstools. Es ist leichtgewichtig konzipiert und somit ein nützliches Tool für Entwickler und Administratoren, die täglich mit Kubernetes-Clustern arbeiten.
Hauptmerkmale von K9s
K9s bieten außerdem Funktionen wie:
- Ressourcenfilterung:Filtern und finden Sie ganz einfach bestimmte Ressourcen in Ihrem Kubernetes-Cluster.
- Inline-Bearbeitung:Ändern Sie Ressourcen direkt in K9s und optimieren Sie so Ihren Arbeitsablauf.
- Umfassende Ressourcenverwaltungs- und Bereitstellungstools:Verwalten und implementieren Sie Ressourcen effizient mit einem umfangreichen Satz an Tools.
- Leichtbauweise:K9s ist schnell und einfach zu bedienen und daher die ideale Wahl für tägliche Kubernetes-Cluster-Interaktionen.
- Benutzerfreundlich:K9s bietet eine unkomplizierte und intuitive Benutzeroberfläche, die die Kubernetes-Verwaltung für Entwickler und Administratoren vereinfacht.
So installieren Sie K9s
K9s ist eine Open-Source-Software und für verschiedene Betriebssysteme verfügbar. Installationsanweisungen finden Sie auf derDas offizielle Repository von K9s. Auf K9s kann auch über Paketmanager zugegriffen werden.
Unter Mac OS können Sie K9s mit installierenbrauen
:
brew installiere k9s
Unter Windows entweder überScoop
oderschokoladig
:
Scoop k9s installieren
Choco k9s installieren
Unter Linux finden Sie möglicherweise, dass Ihr Paketmanager K9s enthält. Wenn nicht, können Sie jederzeit die neuesten Binärdateien von herunterladenK9s-Repository-Releases-Seite.
Verwendung von K9s
K9s läuft auf Ihrem Terminal, und wenn Sie es gemäß den Anweisungen für Ihr Betriebssystem installiert haben, sollten Sie es mit starten könnenk9s
Befehl. Es liest standardmäßig Ihre aktuelle KUBECONFIG, aus der wiederum standardmäßig gelesen wird$HOME/.kube/config
. Wenn Ihre Civo-Clusterkonfiguration dort gespeichert ist, sollte sie geladen werden, wenn Sie K9s starten.
Wenn Sie sich jemals in K9s verirren, können Sie es verwenden?
auf einem beliebigen Bildschirm, um einen Hilfebildschirm zu erhalten. Und wenn Sie k9s schließen möchten, ist dies am einfachsten mitSteuerung-c
um den Prozess abzubrechen und zu Ihrer Shell zurückzukehren.
Ressourcen anzeigen
Wenn Sie damit vertraut sindvim
Wenn Sie Befehle ausführen, werden Sie sich bei K9s wie zu Hause fühlen. Sie können das, was Sie sehen, ändern, indem Sie dem Ressourcentyp einen Doppelpunkt voranstellen. Um also die Pods in Ihrem Cluster anzuzeigen, sobald Sie K9s ausführen, müssen Sie Folgendes eingeben::pods
und drücken Sie die Eingabetaste. Geben Sie Folgendes ein, um zur Anzeige von Knoten zu wechseln::Knoten
und drücken Sie die Eingabetaste. Während Sie tippen, werden im Befehlsfeld Vorschläge angezeigt, sodass Sie die Tab-Vervollständigung nutzen und Tastenanschläge sparen können. Um alle Namespaces in Ihrem Cluster anzuzeigen, müssen Sie möglicherweise nur Folgendes eingeben:
:na
Suchen
Wenn Sie viele Ressourcen eines bestimmten Typs in einem Cluster haben, können Sie diese mithilfe von schnell durchsuchen/
Befehl. Wenn Sie beispielsweise alle Namespaces, die Sie im vorherigen Abschnitt abgerufen haben, auf diejenigen filtern möchten, die enthaltenSei
In ihrem Namen würden Sie Folgendes eingeben:
/be
Sie könnten so etwas bekommen:
Dies ist natürlich ein Beispiel, bei dem nur wenige potenzielle Elemente durchsucht werden müssen, aber wenn Sie Hunderte von Namespaces oder benutzerdefinierten Ressourcen hätten, wäre das ein Lebensretter. Das erspart Ihnen das Ankettengrep
Befehle hineinkubectl
Ausgang!
Navigieren in Kubernetes-Ressourcen
Noch einmal, wenn Sie damit vertraut sindvim
Sie können sich mit den Ressourcen bewegenJ
für Daunen undk
für oben. Praktisch für diejenigen unter uns, die noch nie den Dreh raus haben mit der Vim-Navigation: Die Pfeiltasten funktionieren genauso gut!
Sie können die gewünschte Ressource auswählen und drückenD
Zubeschreiben
Es. Im Bild unten sehe ich die Beschreibung eines Knotens in meinem Cluster, den ich mit den folgenden Befehlen gefunden habe:
: nackt bedeckt
Das sind im Vergleich zu ziemlich viele eingesparte Tastenanschlägekubectl beschreibt den Knoten
Und das setzt voraus, dass Sie den Knotennamen zur Hand haben! Möglicherweise müssen Sie es zuerst mitnehmenkubectl erhält Knoten -o=Name
.
Protokolle von Kubernetes-Ressourcen mit K9s
Mit dem können Sie Protokolle aller Pods, Jobs oder anderen Kubernetes-Ressourcen anzeigenl
Befehl, wenn Sie diese Ressource ausgewählt haben. Wie sieht es jedoch mit der Anzeige vergangener Ereignisse aus, wenn eine Ressource durch eine neue Instanz von sich selbst ersetzt wurde, die nun ihre eigenen Protokolle schreibt? Mit K9s können Sie anzeigenvorherigeProtokolle für diese Ressource mit demP
Befehl, der unglaublich praktisch ist, um Fehler oder andere Probleme aufzuspüren.
Wenn Sie Protokolle anzeigen und genau sehen möchten, wann ein Ereignis aufgetreten ist, können Sie Folgendes verwenden:T
So fügen Sie Zeitstempel automatisch ein:
Vorgänge auf Kubernetes-Ressourcen mit K9s
Mit K9s können Sie Konfigurationen auch im Handumdrehen bearbeiten. Wenn Sie drückene
Auf jeder Ressource wird Ihnen (wahrscheinlich) Ihr Standardeditor angezeigtvim
(sofern Sie nichts anderes angegeben haben), um das Konfigurations-YAML dieses bestimmten Pods, dieser Bereitstellung oder einer anderen Ressource zu bearbeiten.
Wenn Sie diese Konfigurationen am Ende bearbeiten, wirken sie sich natürlich sofort auf Ihren Cluster aus, können jedoch durch nachfolgende CI/CD-Bereitstellungen überschrieben werden, wenn Sie sie verwenden.
Sie können auch Operationen auf Knotenebene auf K9s ausführen. Sie könnten zum BeispielKordonein Knoten, oder sogarAbflussdamit Sie es aus Ihrem Pool entfernen oder andere Wartungsarbeiten daran durchführen können.
Wenn sich ein Pod nicht richtig verhält, können Sie ihn auch mit K9s löschen. Navigieren Sie dazu im:pods
ansehen und drückenKontrolle-d
. Sie werden aufgefordert, das Löschen des Pods zu bestätigen:
Und sobald Sie dies tun, plant die Kubernetes-Cluster-API einen weiteren Pod, der seinen Platz einnimmt:
Sie können die Portweiterleitung auch von einem bestimmten Pod aus konfigurieren, indem Sie verwendenShift-f
und wählen Sie einen lokalen Port aus, z. B. 3000. Anschließend können Sie dorthin navigierenlocalhost:3000
und sehen Sie sich die Ressource an.
Alternativ können Sie sogar ein Gehäuse zu einem laufenden Pod öffnen, wenn es dies unterstützt! Wählen Sie den gewünschten Pod aus und drücken SieS
. Dies ist das Äquivalent zum Laufenkubectl exec --stdin --tty
. Wieder eine viel schnellere Möglichkeit, Dinge zu erledigen!
In meinem Fall habe ich den Haupt-Gitea-Pod ausgewählt, der erstellt wurde, als ich ihn auf dem Kubernetes-Marktplatz auswählte. Voila:
<> Pod: gitea/gitea-0 | Container: giteabash-5.0# lsapp bin data dev etc home lib media mnt opt proc root run sbin srv sys tmp usr varbash-5.0#
Um die Shell zu verlassen, können Sie ausführenAusfahrt
Dadurch gelangen Sie zurück zum K9s-Bildschirm.
K9s-Überwachungstools
K9s verfügt neben einer regelmäßigen Abfrage der ausgewählten Ressource (Pod, Knoten usw.), die Sie auf dem Hauptbildschirm sehen, über eine Reihe interessanter Überwachungstools. Eine der interessantesten Visualisierungen ist die:Impulse
Modus. Versuche es:
:Impulse
Sie sollten live aktualisierte, farbcodierte Diagramme der Hauptaspekte Ihres Clusters sehen:
Sie können navigieren, um einen Drilldown zu jedem angezeigten Impuls durchzuführen, indem Sie verwendenTab
oder wählen Sie die Nummer aus, die der jeweiligen Ressource in der oberen Leiste von K9s entspricht. In diesem Bild habe ich nach unten zu „Ereignisse“ gescrollt, um mir die 13 Warnungen anzusehen, habe die Eingabetaste gedrückt und die Liste nach unten gescrollt:
Wenn Sie Ereigniswarnungen wie diese sehen, können Sie zu der spezifischen Warnung scrollen, die Sie anzeigen möchten, und Informationen dazu anzeigen, indem Sie die Eingabetaste oder drückenD
um es zu beschreiben.
In diesem Fall handelt es sich um erwartete Warnungen, da die Kubernetes-API aufgrund der letztendlichen Konsistenz von Kubernetes bestimmte Ereignisse erneut versuchen muss, bis sie erfolgreich sind, da sie möglicherweise von der Ausführung anderer Komponenten abhängen. Dies war ein Cluster, der sich gerade im Aufbau befand, sodass die Ereignisse alle gleichzeitig stattfanden.
Sie können jede Ansicht verlassen, indem Sie drückenEsc
bis Sie wieder auf dem Bildschirm sind, den Sie sehen möchten.
Erweiterte K9-Nutzung
K9s-Plugins
K9s unterstützt Plugins. Sie können also Ihre eigenen Plugins erstellen oder aus von der Community bereitgestellten Plugins auswählen, die dabei helfen, die Funktionalität von K9s durch das Hinzufügen von Verknüpfungen zu komplexen Befehlen zu erweitern. Einige interessante Plugins sind:
Nimm alle
Mit diesem Plugin können Sie sofort alle Ressourcen in einem bestimmten Namespace abrufen, indem Sie den Befehl krew get-all nutzen. Nach der Installation drücken SieG
In jeder Ansicht werden alle Komponenten und Ressourcen in diesem Namespace angezeigt.
Beachten Sie, dass Sie das installieren müssenBlut
Paket und dieketall
Modul, um dieses Plugin nutzen zu können.
Protokoll voll
Ein Plugin zum Hinzufügen einer Tastenkombination (Umschalt-L) zum Anzeigen aller Protokolle für eine bestimmte Ressource anstelle der Standardprotokollansicht. Nützlich, wenn Sie zum Debuggen alle Ereignisse eines bestimmten Pods verfolgen müssen.
K9s bündelt diePopeyeKubernetes-Bereinigungstool, mit dem Sie die Konfiguration Ihres Clusters anhand von Best Practices bewerten können. Um auf das Popeye-Scannen zuzugreifen, verwenden Sie das:popeye
Befehl. Dadurch wird eine Scan-Zusammenfassungsseite geöffnet, auf der Sie eine Gesamtbewertung und die von Popeye analysierten Komponenten erhalten:
Sie können einen Drilldown zu jeder Komponente, z. B. Daemonsets, durchführen, um die Gründe für die Ergebnisse anzuzeigen:
Wenn Sie durch den Popeye-Scan erkannte Konfigurationsprobleme beheben möchten, können Sie die Fehlermeldung nachschlagen. Im obigen Screenshot bezieht sich beispielsweise die Meldung „(POP-101) Image getagged „latest“ in use“ auf die Tatsache, dass das neueste Image-Tag nicht unveränderlich ist, was der Fall sein könnteetwas, das Sie vermeiden möchten.
Um dieses Problem zu beheben, könnten Sie die Verwendung eines versionierten Tags anstelle des neuesten Tags in Betracht ziehen, um sicherzustellen, dass das verwendete Bild immer dasselbe ist. Alternativ können Sie auch ein Tool wie verwendenAnchoreum eine detailliertere Analyse Ihrer Bilder durchzuführen und Probleme wie diese zu erkennen.
Insgesamt kann Ihnen die Verwendung von Popeye und anderen K9s-Plugins dabei helfen, sicherzustellen, dass Ihre Kubernetes-Cluster ordnungsgemäß konfiguriert, sicher und effizient sind. Mit diesen Tools können Sie Ihre Arbeitsabläufe vereinfachen und häufige Fallstricke bei Ihren Kubernetes-Bereitstellungen vermeiden.
K9s-Anpassung
K9s bietet außerdem zahlreiche Anpassungsmöglichkeiten, die es Benutzern ermöglichen, das Tool an ihre Vorlieben und Anforderungen anzupassen. Zu den wichtigsten Anpassungsfunktionen gehören:
- Konfigurationsdatei:K9s speichert seine Konfiguration in einer YAML-Datei mit dem Namen k9s.yml, die sich normalerweise im Verzeichnis ~/.k9s befindet. Diese Datei enthält Einstellungen wie den bevorzugten Namespace, die bevorzugte Ansicht und Protokoll-Endzeilen. Sie können diese Einstellungen ändern, um das Standardverhalten von K9s zu ändern.
- Skins:K9s unterstützt Skinning, wodurch Sie das Erscheinungsbild der Benutzeroberfläche durch Modifizieren von Farben, Stilen und anderen visuellen Elementen ändern können. Um einen benutzerdefinierten Skin zu erstellen, können Sie eine YAML-Datei mit den gewünschten Stilattributen erstellen und diese als ~/.k9s/skin.yml speichern. K9s lädt die Skin-Konfiguration beim Start. Sie können sogar eine Cluster-spezifische Skin festlegen, um den Kontext, in dem Sie arbeiten, optisch hervorzuheben.
- Aliase:Genau wie bei Ihrer Terminal-Shell können Sie in K9s Aliase erstellen, um die Ausführung allgemeiner Befehle zu beschleunigen.
Um Aliase für K9s zu erstellen, müssen Sie eine Datei im erstellen
.k9s/
Verzeichnis. Standardmäßig befindet es sich in Ihrem Home-Verzeichnis, sodass Sie durch Ausführen dorthin navigieren könnencd $HOME/.k9s
.Wenn Sie sich im richtigen Verzeichnis befinden, erstellen Sie eine Datei mit dem Namen
alias.yml
und bearbeiten Sie es mit Ihrem bevorzugten Texteditor. Das Format der Aliasdefinitionen hat das FormatAlias: Gruppe/Version/Ressource
. Zum Beispiel, wenn Sie einen Alias erstellen möchtenabt
Um alle Bereitstellungen anzuzeigen, müssen Sie sie in definierenalias.yml
als:Alias: dep: apps/v1/deployments
Beachten Sie, dass die Datei mit beginnen muss
alias:
oben, mit Ihren verschachtelten Alias-Definitionen darunter, jede in ihrer eigenen Zeile.Wenn Sie nun K9s starten, können Sie etwas eingeben
:dep
vom Hauptbildschirm aus und sehen Sie sich Ihre Einsätze an. Sauber!Weitere Einzelheiten zur Struktur und Verwendung der Alias-Datei finden Sie wie immer in der offiziellen Dokumentation.
Um mit der Anpassung von K9s zu beginnen, können Sie sich auf die offizielle Dokumentation beziehen, die detailliertere Informationen und Beispiele für Konfigurationsoptionen enthält:https://k9scli.io/topics/config/
Einpacken
Um Informationen auf einen Blick, schnell und griffbereit in Ihrem Terminal zu erhalten, ist K9s ein unschätzbares Werkzeug. Die Tatsache, dass Sie benutzerdefinierte Ressourcendefinitionen neben allen anderen Kubernetes-Clusterobjekten anzeigen können, bedeutet, dass sich K9s an Ihren Cluster und seine Konfiguration anpasst.
Sie können Vorgänge in Ihrem Cluster schnell und ohne großen Aufwand durchführenkubectl
Befehle, die mehrere Terminalbefehle verketten, um die gewünschte Ausgabe zu erhalten. Eigentlich jederkubectl
Der Befehl, mit dem Sie Ihren Cluster ansprechen können, verfügt über eine entsprechende K9s-Methode, für die Sie nach Belieben Aliase erstellen können. Darüber hinaus verfügt K9s über eigene Beobachtbarkeits- und Analysefunktionen wie die Pulse- und Popeye-Ansichten, mit denen Sie Ihren Cluster insgesamt im Auge behalten können.
K9s bietet außerdem eine breite Palette von Plugins, die zur Erweiterung der Funktionalität und zur Integration mit verschiedenen Tools und Diensten beitragen können, z. B. zur Live-Protokollüberwachung, zur Bereinigung von Kubernetes-Manifesten, zur Visualisierung von Objekthierarchien und zur Interaktion mit dem NGINX-Ingress-Controller. Sie können K9s sogar an Ihre eigenen Arbeitsabläufe anpassen, indem Sie benutzerdefinierte Aliase, Verknüpfungen und Ansichten erstellen.
Wir finden K9s absolut lohnenswert, sich damit vertraut zu machen, und freuen uns auf neue Features, die die Nutzung noch besser machen. Wenn Sie K9s verwendet haben und der Meinung sind, dass wir eine Funktion nicht behandelt haben, die hätte berücksichtigt werden sollen,Rufen Sie mich auf Twitter anund ich werde diesen Leitfaden aktualisieren und Ihnen dafür Anerkennung zollen!
Wenn Sie alternativ ein bevorzugtes Kubernetes-Verwaltungstool haben, das in der Konsole ausgeführt wird, lassen Sie es mich wissen! Ich liebe CLI-Tools und bin immer daran interessiert, neue auszuprobieren. Sie finden mich wie oben auf Twitter oder auf derCivo-Community Slack.
Eine Tech-Veranstaltung voller Vorträge und Workshops, die sich auf die Navigation und den Erfolg in der Cloud-Native-Landschaft konzentrieren.
Registrieren Sie sich für Navigate