Kubernetes jsonpath con ejemplos

Kubernetes jsonpath con ejemplos
Al tratar con Kubernetes en un entorno de producción, deberá ver información sobre cientos de nodos y miles de elementos como despliegues, vainas, conjuntos de réplicas, servicios y secretos, entre otras cosas. Para obtener esta información, utilizará el comando kubectl cli. Sin embargo, en muchos casos, se le solicitará que filtre información y obtenga más datos más allá de lo que proporciona la salida predeterminada de Kubectl.

Pasar por miles de estos recursos para encontrar dicha información exacta sería una tarea desalentadora. Como resultado, Kubectl incluye la opción JSONPath, que hace que el filtrado de datos en los conjuntos de big data sea muy fácil.

El comando Kubectl interactúa con la API Kubernetes cada vez que lo ejecuta. El Kube-Apiserver luego envía una respuesta con formato JSON. Kubectl lo traduce en un formato legible por humanos y lo muestra en la pantalla. Para que una salida sea comprensible, se entera mucha información de la respuesta durante este procedimiento, dejando solo los campos relevantes visibles. Podemos usar la opción -o amplia para obtener más, pero esto no es todo. Hay muchos más detalles que no se presentan.

Necesitará instalar Ubuntu 20.04 en su sistema operativo Linux para ejecutar las instrucciones en Kubernetes. Además, debe instalar el clúster de Minikube en su máquina para ejecutar Kubernetes en Linux. Minikube proporciona una experiencia extraordinariamente perfecta al permitirle probar comandos y aplicaciones de manera metódica. Como resultado, proporciona el mejor entorno de aprendizaje para los novatos de Kubernetes.

El primer paso es comenzar el clúster de Minikube. Luego, navegue al terminal de la línea de comando en Ubuntu 20.04, que has instalado. Puede hacerlo presionando la tecla Ctrl+Alt+t de acceso directo o escribiendo "terminal" en el Ubuntu 20.04 Caja de búsqueda del sistema. Cualquiera de las técnicas mencionadas lanzará todo el terminal. Posteriormente se iniciará el minikube. Ingrese el comando "Minikube Start" en la terminal para iniciar el minikube. Se iniciará el clúster Kubernetes y se creará una máquina virtual capaz de ejecutar un solo clúster de nodo. También funcionará en la instalación de Kubectl. Esto también interactuará con el clúster.

$ minikube comienzo

Cómo dividir la salida de Kubectl JsonPath en líneas separadas?

Todos los programadores deben buscar en Google cómo hacer que Kubectl obtenga resultados de la ruta JSON en líneas distintas en todo momento. El siguiente comando, por ejemplo, recupera el podip para cada cápsula en todos los espacios de nombres. Te da algo como esto como resultado. Ese sin duda no es el resultado más fácil de usar.

Puede iterar sobre la lista con la función de rango JSONPath, agregando una nueva línea después de cada miembro con N. Impresionante! Ahora podemos usar todas las herramientas UNIX normales que actúan en nuevas líneas para funcionar con la salida (E.gramo. Sort, Xargs, Uniq, etc.).

Otros personajes de espacios en blanco también se pueden usar. Suponga que queríamos imprimir los espacios/nombres de nombres de Pod, así como sus direcciones IP, separadas por una coma. A veces es útil para emitir en jsonpath.

Ejemplo de expresiones Kubectl y Jsonpath

La plantilla JSONPath es compatible con Kubectl. Las expresiones JSONPATH están encerradas en aparatos ortopédicos en la plantilla JSONPATH. Kubectl emplea expresiones JSONPath para formatear con éxito el resultado. Además, filtra las opciones precisas en el objeto JSON. La sintaxis (mencionada a continuación) es válida además de la sintaxis de plantilla JSONPath inventiva. También puede considerar el ejemplo mencionado a continuación para comprender todos los elementos.

  • Para citar texto sin formato dentro de las expresiones de Jsonpath, inserte citas dobles.
  • Listas de iteración utilizando el rango y los operadores finales.
  • Los catálogos negativos se usan para volver a una lista a través de una lista.
  • @ es el objeto actual
  • [ ] o . es el operador infantil
  • ... descendencia recursiva
  • * se usa para obtener todos los objetos
  • [,] es el operador sindical
  • "Se usa para citar cadena interpretada

Debido a que la expresión siempre comienza desde el objeto raíz de forma predeterminada, el operador $ no es necesario. La función String () se usa para imprimir el objeto de resultado.

La entrada completa de JSON se muestra en las siguientes capturas de pantalla.

En el siguiente código, las expresiones Kubectl y JsonPath se utilizan para mostrar la salida.

Cualquier plantilla JSONPath que use espacios debe estar encerrada en doble cotización en Windows. No debe escribirse en una sola cita como se muestra arriba para Bash. Como resultado, todos los literales en la plantilla deben estar rodeados de una sola cita o una cita doble escapada. Considere la siguiente pieza de código.

Nota: Para la salida de JSONPath, Kubectl no acepta expresiones regulares. Puede usar un programa como JQ si desea coincidir con expresiones regulares.

El siguiente código imprime el nombre y la hora de inicio.

Conclusión

Esta guía se trataba de Kubernetes JSON y por qué se usan. También hemos pasado por ejemplos detallados de cómo funcionan las expresiones Kubectl y Jsonpath para mostrar el resultado específico.