Kubernetes jsonpath avec des exemples

Kubernetes jsonpath avec des exemples
Lorsque vous traitez avec Kubernetes dans un cadre de production, vous devrez voir des informations sur des centaines de nœuds et des milliers d'articles comme les déploiements, les gousses, les répliques, les services et les secrets, entre autres. Pour obtenir ces informations, vous utiliserez la commande kubectl CLI. Cependant, dans de nombreux cas, vous devrez filtrer les informations et obtenir plus de faits au-delà de ce que la sortie par défaut de Kubectl fournit.

Traverser des milliers de ces ressources pour trouver de telles informations exactes serait une tâche intimidante. En conséquence, Kubectl inclut l'option JSONPath, ce qui fait du filtrage des données sur les ensembles de Big Data un jeu d'enfant.

La commande kubectl interagit avec l'API Kubernetes à chaque fois que vous l'exécutez. Le kube-apiserver envoie ensuite une réponse format JSON. Kubectl le traduit par un format lisible par l'homme et l'affiche à l'écran. Pour rendre une sortie compréhensible, beaucoup d'informations de la réponse sont enterrées pendant cette procédure, ne laissant que les champs pertinents visibles. Nous pouvons utiliser l'option -o large pour en obtenir plus, mais ce n'est pas tout. Il y a beaucoup plus de détails qui ne sont pas présentés.

Vous devrez installer ubuntu 20.04 sur votre système d'exploitation Linux pour exécuter les instructions dans Kubernetes. De plus, vous devez installer le cluster Minikube sur votre machine afin d'exécuter Kubernetes sur Linux. Minikube offre une expérience extraordinairement transparente en vous permettant de tester les commandes et les applications de manière méthodique. En conséquence, il offre le plus grand environnement d'apprentissage aux débutants de Kubernetes.

La première étape consiste à commencer le cluster Minikube. Ensuite, accédez au terminal de la ligne de commande dans Ubuntu 20.04, que vous avez installé. Vous pouvez le faire en appuyant sur la touche de raccourci Ctrl + Alt + T ou en tapant «terminal» dans l'ubuntu 20.04 Boîte de recherche du système. L'une des techniques susmentionnées lancera le terminal entier. Le minikube sera ensuite démarré. Entrez la commande «Minikube Start» dans le terminal pour démarrer le minikube. Le cluster Kubernetes sera démarré et une machine virtuelle capable d'exécuter un seul cluster de nœuds sera créée. Il fonctionnera également sur l'installation de Kubectl. Cela aussi interagira avec le cluster.

$ minikube start

Comment diviser la sortie de Kubectl JsonPath en lignes distinctes?

Tous les programmeurs doivent Google comment amener Kubectl à produire des résultats de chemin JSON sur des lignes distinctes à tout moment. La commande suivante, par exemple, récupère le podip pour chaque pod en cours d'exécution dans tous les espaces de noms. Ça te donne quelque chose comme ça en conséquence. Ce n'est incontestablement pas le résultat le plus convivial.

Vous pouvez itérer sur la liste avec la fonction de plage JSONPath, ajoutant une nouvelle ligne après chaque membre avec n. Génial! Nous pouvons maintenant utiliser tous les outils UNIX normaux qui agissent sur de nouvelles lignes pour travailler avec la sortie (E.g. tri, xargs, uniq, etc.).

D'autres caractères d'espace blanc peuvent également être utilisés. Supposons que nous voulions imprimer les espaces de noms / noms de pod, ainsi que leurs adresses IP, séparées par une virgule. Il est parfois utile de sortir dans JSONPATH.

Exemple d'expressions Kubectl et JSONPath

Le modèle JSONPath est pris en charge par Kubectl. Les expressions JSONPath sont enfermées en accolades bouclées dans le modèle JSONPath. Kubectl utilise des expressions JSONPath pour formater avec succès le résultat. Aussi, filtre les options précises dans l'objet JSON. La syntaxe (mentionnée ci-dessous) est valide en plus de la syntaxe de modèle JSONPath inventive. Vous pouvez également considérer l'exemple mentionné ci-dessous pour comprendre tous les éléments.

  • Pour citer le texte brut à l'intérieur des expressions JSONPath, insérez des citations doubles.
  • Itérer les listes en utilisant la gamme et les opérateurs finaux.
  • Les catalogues de tranche négatifs sont utilisés pour reculer par une liste.
  • @ est l'objet actuel
  • [ ] ou . est l'opérateur enfant
  • … Descente récursive
  • * est utilisé pour obtenir tous les objets
  • [,] est l'opérateur syndical
  • "Est utilisé pour citer la chaîne interprétée

Parce que l'expression commence toujours par défaut de l'objet racine, l'opérateur $ n'est pas requis. La fonction string () est utilisée pour imprimer l'objet résultat.

L'entrée JSON complète est affichée dans les captures d'écran suivantes.

Dans le code suivant, les expressions Kubectl et JSONPath sont utilisées pour afficher la sortie.

Tout modèle JSONPath qui utilise des espaces doit être enfermé en double cité sous Windows. Il ne doit pas être écrit en une seule citation comme indiqué ci-dessus pour bash. En conséquence, tous les littéraux du modèle doivent être entourés d'une seule citation ou d'une double citation échappée. Considérez le morceau de code suivant.

Note: Pour la sortie JSONPath, Kubectl n'accepte pas les expressions régulières. Vous pouvez utiliser un programme comme JQ si vous souhaitez correspondre en utilisant des expressions régulières.

Le code suivant imprime le nom et l'heure de début.

Conclusion

Ce guide était tout au sujet de Kubernetes JSON et pourquoi sont-ils utilisés. Nous avons également vécu des exemples détaillés de la façon dont les expressions Kubectl et JSONPath fonctionnent pour afficher la sortie spécifique.