Kubernetes Jsonpath con esempi

Kubernetes Jsonpath con esempi
Quando si tratta di Kubernetes in un ambiente di produzione, dovrai vedere informazioni su centinaia di nodi e migliaia di articoli come distribuzioni, baccelli, set di repliche, servizi e segreti, tra le altre cose. Per ottenere queste informazioni, utilizzerai il comando kubectl cli. Tuttavia, in molti casi, ti verrà richiesto di filtrare le informazioni e ottenere più fatti oltre a ciò che fornisce l'output predefinito di Kubectl.

Passare attraverso migliaia di queste risorse per trovare tale informazione esatta sarebbe un compito scoraggiante. Di conseguenza, Kubectl include l'opzione JSONPATH, che rende i dati di filtraggio attraverso i set di big data un gioco da ragazzi.

Il comando kubectl interagisce con l'API Kubernetes ogni volta che lo esegui. Kube-Apiserver invia quindi una risposta formatta da JSON. Kubectl lo traduce in un formato leggibile dall'uomo e lo mostra sullo schermo. Per rendere comprensibile un output, molte informazioni dalla risposta vengono sepolte durante questa procedura, lasciando visibili solo i campi pertinenti. Possiamo usare l'opzione -o ampia per ottenerne di più, ma questo non è tutto. Ci sono molti altri dettagli che non vengono presentati.

Dovrai installare Ubuntu 20.04 Sul tuo sistema operativo Linux per eseguire le istruzioni in Kubernetes. Inoltre, è necessario installare il cluster Minikube sulla macchina per eseguire Kubernetes su Linux. Minikube offre un'esperienza straordinariamente senza soluzione di continuità consentendo di testare comandi e applicazioni in modo metodico. Di conseguenza, fornisce il massimo ambiente di apprendimento per i neofiti di Kubernetes.

Il primo passo è iniziare il cluster minikube. Quindi, vai al terminale della riga di comando in Ubuntu 20.04, che hai installato. Puoi farlo premendo il tasto di scorciatoia Ctrl+Alt+T o digitando "Terminale" in Ubuntu 20.04 Casella di ricerca del sistema. Entrambe le tecniche sopra menzionate lancerà l'intero terminale. Successivamente verrà avviato il minikube. Immettere il comando "Minikube Start" nel terminale per avviare il minikube. Verrà avviato il cluster Kubernetes e verrà creata una macchina virtuale in grado di eseguire un singolo cluster di nodi. Funzionerà anche sull'installazione di Kubectl. Anche questo interagirà con il cluster.

$ Minikube inizi

Come dividere l'output di kubectl jsonpath in linee separate?

Tutti i programmatori devono essere Google come convincere Kubectl a produrre i risultati del percorso JSON su linee distinte in ogni momento. Il comando seguente, ad esempio, recupera il podip per ogni pod in esecuzione in tutti i nomi. Di conseguenza ti dà qualcosa del genere. Questo non è indiscutibilmente il risultato più intuitivo.

È possibile iterare sull'elenco con la funzione di gamma JSONPATH, aggiungendo una nuova riga dopo ogni membro con N. Eccezionale! Ora possiamo usare tutti i normali strumenti UNIX che agiscono su nuove linee per funzionare con l'output (E.G. ordina, xargs, uniq, ecc.).

Possono anche essere usati altri personaggi di spazi bianchi. Supponiamo che volessimo stampare gli spazi/nomi dei nomi di pod, così come i loro indirizzi IP, separati da una virgola. A volte è utile per l'output in JSONPATH.

Esempio di espressioni di Kubectl e JSONPATH

Il modello JSONPATH è supportato da Kubectl. Le espressioni JSONPATH sono racchiuse in parenti ricci nel modello JSONPATH. Kubectl impiega le espressioni JSONPATH per formattare con successo il risultato. Inoltre, filtra le opzioni precise nell'oggetto JSON. La sintassi (menzionata di seguito) è valida in aggiunta alla sintassi del modello JSONPATH inventivo. Puoi anche considerare l'esempio di seguito per comprendere tutti gli elementi.

  • Per citare il testo semplice all'interno delle espressioni JSONPATH, inserire doppie citazioni.
  • Iterano elenchi che utilizzano gli operatori di gamma e fine.
  • I cataloghi a fessura negativa vengono utilizzati per passare all'indietro attraverso un elenco.
  • @ è l'oggetto corrente
  • [ ] O . è l'operatore figlio
  • ... discesa ricorsiva
  • * viene utilizzato per ottenere tutti gli oggetti
  • [,] è l'operatore sindacale
  • "Viene utilizzato per citare la stringa interpretata

Poiché l'espressione inizia sempre dall'oggetto root per impostazione predefinita, l'operatore $ non è richiesto. La funzione String () viene utilizzata per stampare l'oggetto risultato.

L'input JSON completo è mostrato nelle seguenti screenshot.

Nel seguente codice, le espressioni di KubeCTL e JSONPATH vengono utilizzate per visualizzare l'output.

Qualsiasi modello JSONPATH che utilizza gli spazi deve essere racchiuso in doppia citazione su Windows. Non dovrebbe essere scritto in un'unica citazione come mostrato sopra per Bash. Di conseguenza, tutti i letterali nel modello devono essere circondati da una singola citazione o una doppia citazione sfuggita. Considera il seguente pezzo di codice.

Nota: Per l'output di JSONPATH, Kubectl non accetta espressioni regolari. Puoi utilizzare un programma come JQ se si desidera abbinare usando espressioni regolari.

Il seguente codice stampa il nome e l'ora di inizio.

Conclusione

Questa guida riguardava Kubernetes Json e perché sono usati. Abbiamo anche superato esempi dettagliati di come funzionano le espressioni di Kubectl e JSONPATH per visualizzare l'output specifico.