Guía de Laboratorio: Uso de JSONPath en Kubernetes
Introducción
En el mundo de Kubernetes, manejar y extraer información precisa de los objetos del clúster es esencial para cualquier desarrollador. JSONPath es una herramienta poderosa que permite filtrar y mostrar información específica de los objetos de Kubernetes de manera eficiente. Esta guía de laboratorio está diseñada para enseñar cómo usar JSONPath para obtener datos clave del entorno Kubernetes, específicamente en un despliegue de Rancher en el namespace cattle-system. A través de ejemplos prácticos, aprenderás a utilizar consultas JSONPath con kubectl para manejar información de manera efectiva.
Objetivo del Laboratorio
Al finalizar este laboratorio, el estudiante podrá utilizar consultas JSONPath en kubectl para extraer información clave de recursos Kubernetes relacionados con Rancher, mejorando su capacidad de gestionar y supervisar despliegues de manera precisa.
Requisitos Previos
Para completar este laboratorio con éxito, los estudiantes deben cumplir con los siguientes requisitos:
- Tener acceso a un clúster Kubernetes operativo.
- kubectl configurado correctamente para interactuar con el clúster.
- Rancher debe estar desplegado en el namespace cattle-system con al menos 3 pods en ejecución.
Acceder al laboratorio.
-
Ingresar al servidor de laboratorio con la llave proporcionada.
export LAB=X ssh student@lab-${LAB}-aio -
Cambiar al usuario root
sudo -i -
Proporcione accesos administrativos al cluster de Kubernetes
export KUBECONFIG=/etc/rancher/rke2/rke2.yamlexport PATH=$PATH:/var/lib/rancher/rke2/bin
Pasos del Laboratorio
Paso 1: Validar que Rancher está desplegado y listar los pods en el namespace cattle-system
kubectl get pods -n cattle-system
kubectl get pods -n cattle-system -o jsonpath='{.items[*].metadata.name}'
kubectl get pods -n cattle-system \
-o jsonpath='{range .items[*]}{.metadata.name} - {.status.phase}{"\n"}{end}'
kubectl get pods -n cattle-system \
-o jsonpath='{range .items[*]}{.metadata.name} - {.status.podIP}{"\n"}{end}'
kubectl get pods -n cattle-system \
-o jsonpath='{range .items[*]}{.metadata.name} - {.spec.containers[*].image}{"\n"}{end}'
kubectl get pods -n cattle-system \
-o jsonpath='{range .items[?(@.status.phase=="Running")]}{.metadata.name}{"\n"}{end}'
kubectl get pods -n kube-system \
-o jsonpath='{range .items[?(@.status.phase=="Succeeded")]}{.metadata.name}{"\n"}{end}'
#!/bin/bash
NAMESPACE="kube-system"
PODS=$(kubectl get pods -n $NAMESPACE -o jsonpath='{.items[*].metadata.name}')
for POD in $PODS; do
STATUS=$(kubectl get pod $POD -n $NAMESPACE -o jsonpath='{.status.phase}')
if [ "$STATUS" != "Running" ]; then
echo "Pod $POD is not running. Status: $STATUS"
# Trigger alert or notification
fi
done
Running.
Automatizar verificaciones con scripts es clave para mantener la salud del clúster sin intervención manual constante.
Asignarle permisos de ejecución:
chmod +x jsonpath.sh
./jsonpath.sh
Resumen
En este laboratorio, has aprendido a utilizar JSONPath para extraer información valiosa de objetos Kubernetes. Desde listar nombres de pods hasta filtrar por estado y automatizar verificaciones, estas habilidades son esenciales para cualquier desarrollador que trabaje en un entorno Kubernetes.
Aplicaciones Prácticas
Las consultas JSONPath son herramientas poderosas para el debugging, validación de despliegues y monitoreo, ya sea manual o automatizado. La capacidad de extraer y manipular datos del clúster de manera eficiente te permitirá responder rápidamente a problemas y asegurarte de que tus aplicaciones se ejecutan de manera óptima.