Kubernetes JsonPath mit Beispielen

Kubernetes JsonPath mit Beispielen
Wenn Sie sich mit Kubernetes in einer Produktionsumgebung befassen. Um diese Informationen zu erhalten, verwenden Sie den Befehl Kubectl CLI. In vielen Fällen müssen Sie jedoch Informationen filtern und mehr Fakten über die Standardausgabe von Kubectl abrufen.

Tausende dieser Ressourcen zu durchlaufen, um solche genauen Informationen zu finden, wäre eine entmutigende Aufgabe. Infolgedessen enthält Kubectl die JSONPATH -Option, mit der Filterdaten über Big -Data -Sets hinweg ein Kinderspiel machen.

Der Befehl kubectl interagiert jedes Mal mit der Kubernetes -API, wenn Sie sie ausführen. Der Kube-Apiserver sendet dann eine JSON-formatierte Antwort. Kubectl übersetzt es in ein menschliches lesbares Format und zeigt es auf dem Bildschirm an. Um eine Ausgabe verständlich zu machen, werden während dieses Verfahrens viele Informationen aus der Antwort begraben, so dass nur die relevanten Felder sichtbar bleiben. Wir können die Option -o -breite Option nutzen, um mehr davon zu bekommen, aber das ist nicht alles. Es gibt viele weitere Details, die nicht präsentiert werden.

Sie müssen Ubuntu 20 installieren.04 Auf Ihrem Linux -Betriebssystem, um die Anweisungen in Kubernetes auszuführen. Darüber hinaus müssen Sie den Minikube -Cluster auf Ihrem Computer installieren, um Kubernetes unter Linux auszuführen. Minikube bietet eine außergewöhnlich nahtlose Erfahrung, indem Sie methodische Befehle und Anwendungen testen können. Infolgedessen bietet es die größte Lernumgebung für Kubernetes -Neulinge.

Der erste Schritt besteht darin, den Minikube -Cluster zu beginnen. Navigieren Sie dann zum Befehlszeilenterminal in Ubuntu 20.04, was Sie installiert haben. Sie können dies tun, indem Sie die Taste Strg+Alt+T -Verknüpfung drücken oder „Terminal“ in die Ubuntu 20 eingeben.04 Suchbox des Systems. Eine der oben genannten Techniken startet das gesamte Terminal. Der Minikube wird danach gestartet. Geben Sie den Befehl "Minikube Start" in das Terminal ein, um den Minikube zu starten. Der Kubernetes -Cluster wird gestartet und eine virtuelle Maschine, die einen einzelnen Knotencluster ausführen kann. Es wird auch an der Kubectl -Installation funktionieren. Auch dies wird mit dem Cluster interagieren.

$ minikube Start

So teilen Sie die Ausgabe von Kubectl JsonPath in separate Zeilen auf?

Alle Programmierer müssen Google ergeben, wie Kubectl JSON -Pfadergebnisse jederzeit in unterschiedlichen Zeilen ausgeben können. Der folgende Befehl ruft beispielsweise den Podip für jeden laufenden Kauf in allen Namespaces ab. Es gibt Ihnen so etwas so etwas. Das ist zweifellos nicht das benutzerfreundlichste Ergebnis.

Sie können die Liste mit der JsonPath -Bereichsfunktion iterieren und nach jedem Mitglied mit n eine neue Zeile hinzufügen. Eindrucksvoll! Wir können jetzt alle normalen Unix -Tools verwenden, die auf neue Zeilen wirken, um mit der Ausgabe zu arbeiten (e.G. Sortieren, Xargs, Uniq usw.).

Andere Whitespace -Zeichen können ebenfalls verwendet werden. Angenommen, wir wollten die Pod -Namespaces/Namen sowie ihre IP -Adressen drucken, die durch ein Komma getrennt sind. Es ist manchmal nützlich, in JsonPath auszugeben.

Beispiel für Kubectl- und JsonPath -Ausdrücke

JsonPath -Vorlage wird von Kubectl unterstützt. JsonPath -Ausdrücke sind in lockigen Zahnspangen in der JSONPAD -Vorlage eingeschlossen. Kubectl setzt JsonPath -Ausdrücke ein, um das Ergebnis erfolgreich zu formatieren. Filtert auch die genauen Optionen im JSON -Objekt. Die Syntax (unten erwähnt) ist zusätzlich zur erfinderischen JSONPAD -Vorlagensyntax gültig. Sie können auch das unten erwähnte Beispiel betrachten, um alle Elemente zu verstehen.

  • Um einen einfachen Text in JsonPath -Ausdrücken zu zitieren, fügen Sie doppelte Zitate ein.
  • ITREAT -LISTS unter Verwendung des Bereichs und der Endoperatoren.
  • Negative Scheibenkataloge werden verwendet, um eine Liste rückwärts zu durchgehen.
  • @ ist das aktuelle Objekt
  • [ ] oder . ist der Kinderbetreiber
  • … Rekursive Abstammung
  • * wird verwendet, um alle Objekte zu erhalten
  • [,] ist der Gewerkschaftsbetreiber
  • ”Wird verwendet, um die interpretierte Zeichenfolge zu zitieren

Da der Ausdruck standardmäßig aus dem Stammobjekt beginnt, ist der $ -Operator nicht erforderlich. Die Funktion String () wird verwendet, um das Ergebnisobjekt zu drucken.

Der vollständige JSON -Eingang wird in den folgenden Screenshots angezeigt.

Im folgenden Code werden Kubectl- und JsonPath -Ausdrücke verwendet, um die Ausgabe anzuzeigen.

Jede JSONPAD-Vorlage, die Leerzeichen verwendet. Es sollte nicht in einem einzigen Zitat geschrieben werden, wie oben für Bash gezeigt. Infolgedessen müssen alle Literale in der Vorlage von einem einzelnen Zitat oder einem entkommenen Doppelzitat umgeben sein. Betrachten Sie den folgenden Code.

Notiz: Bei JSONPAD -Ausgabe akzeptiert Kubectl keine regulären Ausdrücke. Sie können ein Programm wie JQ verwenden, wenn Sie mit regulären Ausdrücken übereinstimmen möchten.

Der folgende Code druckt den Namen und die Startzeit aus.

Abschluss

In diesem Leitfaden drehte sich alles um Kubernetes JSON und warum werden sie verwendet. Wir haben auch detaillierte Beispiele dafür durchgemacht, wie Kubectl und JsonPath -Ausdrücke die spezifische Ausgabe anstellen.