Kubernetes jsonpath med eksempler

Kubernetes jsonpath med eksempler
Når du arbeider med Kubernetes i en produksjonsinnstilling, må du se informasjon om hundrevis av noder og tusenvis av elementer som distribusjoner, belg, replikasett, tjenester og hemmeligheter, blant annet. For å få denne informasjonen, vil du bruke kommandoen Kubectl CLI. Imidlertid vil du i mange tilfeller bli pålagt å filtrere informasjon og få flere fakta utover hva standardutgangen til Kubectl gir.

Å gå gjennom tusenvis av disse ressursene for å finne så nøyaktig informasjon ville være en skremmende oppgave. Som et resultat inkluderer Kubectl alternativet JSONPath, som gjør filtreringsdata på tvers av big data -sett en lek.

Kubectl -kommandoen samhandler med Kubernetes API hver gang du kjører den. Kube-Apisererver sender deretter et JSON-formatert respons. Kubectl oversetter det til et menneskelig lesbart format og viser det på skjermen. For å gjøre en produksjon forståelig, blir mye informasjon fra svaret begravet under denne prosedyren, og etterlater bare de relevante feltene synlig. Vi kan bruke den brede alternativet for å få mer av det, men dette er ikke alt sammen. Det er mange flere detaljer som ikke blir presentert.

Du må installere Ubuntu 20.04 På Linux -operativsystemet ditt for å kjøre instruksjonene i Kubernetes. I tillegg må du installere Minikube -klyngen på maskinen din for å kjøre Kubernetes på Linux. Minikube gir en ekstraordinær sømløs opplevelse ved å la deg teste kommandoer og applikasjoner på en metodisk måte. Som et resultat gir det det største læringsmiljøet for Kubernetes nybegynnere.

Det første trinnet er å begynne Minikube -klyngen. Naviger deretter til kommandolinjeterminalen i Ubuntu 20.04, som du har installert. Du kan gjøre det ved å trykke på CTRL+ALT+T -snarveisnøkkelen eller skrive "terminal" i Ubuntu 20.04 Systemets søkeboks. En av de nevnte teknikkene vil starte hele terminalen. Minikube vil deretter bli startet. Skriv inn kommandoen “Minikube Start” i terminalen for å starte Minikube. Kubernetes -klyngen vil bli startet, og en virtuell maskin som er i stand til å kjøre en enkelt node -klynge vil bli opprettet. Det vil også fungere på KUBECTL -installasjonen. Også dette vil samhandle med klyngen.

$ Minikube Start

Hvordan dele utgangen fra Kubectl JsonPath i separate linjer?

Alle programmerere må Google hvordan få Kubectl til å sende ut JSON -baneresultater på forskjellige linjer til enhver tid. Følgende kommando, for eksempel, henter Podip for hver løpende pod i alle navnefelt. Det gir deg noe slikt som et resultat. Det er uten tvil ikke det mest brukervennlige resultatet.

Du kan iterere over listen med JSONPath Range -funksjonen, og legge til en ny linje etter hvert medlem med N. Rått! Vi kan nå bruke alle de normale UNIX -verktøyene som virker på nye linjer for å jobbe med utgangen (e.g. Sorter, xargs, uniq, etc.).

Andre hvitromstegn kan også brukes. Anta at vi ønsket å skrive ut pod -navnefelt/navn, så vel som IP -adressene deres, atskilt med komma. Noen ganger er det nyttig å gi ut i JSONPath.

Eksempel på KUBECTL- og JSONPATH -uttrykk

JsonPath -malen støttes av Kubectl. JsonPath -uttrykk er innkapslet i krøllete seler i JSONPath -malen. Kubectl bruker JSONPath -uttrykk for å formatere resultatet. Filtrerer også de nøyaktige alternativene i JSON -objektet. Syntaksen (nevnt nedenfor) er gyldig i tillegg til den oppfinnsomme JSONPath -mal -syntaksen. Du kan også vurdere det nedenfor-nevnte eksemplet for å forstå alle elementene.

  • For å sitere vanlig tekst i JSONPath -uttrykk, sett inn doble sitater.
  • Iterate lister som bruker rekkevidden og sluttoperatørene.
  • Negative skivekataloger brukes til å gå bakover gjennom en liste.
  • @ er det nåværende objektet
  • [] eller . er barneoperatøren
  • … Rekursiv nedstigning
  • * brukes til å få alle objekter
  • [,] er unionsoperatøren
  • ”Brukes til å sitere tolket streng

Fordi uttrykket alltid begynner fra rotobjektet som standard, er ikke $ -operatøren påkrevd. Streng () -funksjonen brukes til å skrive ut resultatobjektet.

Den komplette JSON -inngangen vises i følgende skjermbilder.

I følgende kode brukes KUBECTL- og JSONPATH -uttrykk for å vise utgangen.

Enhver JSONPath-mal som bruker rom, må lukkes i dobbeltkjørt på Windows. Det skal ikke skrives i et eneste sitat som vist ovenfor for bash. Som et resultat må alle bokstaver i malen være omgitt av et enkelt sitat eller et rømt dobbelt tilbud. Tenk på følgende kode.

Merk: For JSONPath -utgangen godtar Kubectl ikke regelmessige uttrykk. Du kan bruke et program som JQ hvis du ønsker å matche ved hjelp av vanlige uttrykk.

Følgende kode skriver ut navnet og starttiden.

Konklusjon

Denne guiden handlet om Kubernetes JSON og hvorfor brukes de. Vi har også gått gjennom detaljerte eksempler på hvordan Kubectl og JsonPath -uttrykk fungerer for å vise den spesifikke utgangen.