Analizando los Registros de los Trabajos Kubernetes
Poder ver y analizar los registros de sus trabajos Kubernetes es esencial para la depuración y la comprensión del comportamiento del trabajo. En este paso, exploraremos cómo acceder y analizar los registros de los trabajos que hemos creado.
Obteniendo los Nombres de los Pods para Nuestros Trabajos
Antes de que podamos ver los registros, necesitamos saber los nombres de los pods creados por nuestros trabajos. Cada trabajo crea uno o más pods con nombres que incluyen el nombre del trabajo y un sufijo aleatorio.
Listemos todos los pods relacionados con nuestros trabajos:
kubectl get pods --show-labels
Esto le mostrará todos los pods junto con sus etiquetas. Busque pods con etiquetas como job-name=hello-job o job-name=long-job.
Alternativamente, puede filtrar los pods por el nombre del trabajo:
kubectl get pods -l job-name=hello-job
Esto mostrará solo los pods que pertenecen al trabajo hello-job.
Visualizando los Registros del Trabajo
Ahora que conocemos los nombres de nuestros pods, podemos ver los registros de nuestros trabajos. Use el siguiente comando, reemplazando <pod-name> con el nombre real de su pod:
kubectl logs <pod-name>
Por ejemplo, si su pod se llama hello-job-abcd1, ejecutaría:
kubectl logs hello-job-abcd1
Debería ver la salida:
Hello, Kubernetes!
Este es el mensaje que nuestro trabajo fue programado para emitir.
Comprobemos también los registros de nuestro trabajo más largo. Primero, encuentre el nombre del pod:
kubectl get pods -l job-name=long-job
Luego, vea sus registros:
kubectl logs <long-job-pod-name>
Debería ver:
Starting long job...
Long job completed!
Visualizando los Registros de los Trabajos Completados
Una de las ventajas de los trabajos Kubernetes es que puede ver los registros incluso después de que el trabajo se haya completado. Esto es muy útil para la depuración y la auditoría.
Creemos un trabajo que fallará, para que podamos ver cómo depurarlo:
cd ~/project
nano failed-job.yaml
Copie y pegue el siguiente contenido YAML:
apiVersion: batch/v1
kind: Job
metadata:
name: failed-job
spec:
template:
spec:
containers:
- name: failed
image: busybox:1.28
command: ["sh", "-c", 'echo "Attempting task..." && exit 1']
restartPolicy: Never
backoffLimit: 2
Este trabajo siempre saldrá con el código de estado 1, lo que indica un fallo. Guarde el archivo y salga de nano, luego cree el trabajo:
kubectl apply -f failed-job.yaml
Espere unos momentos para que el trabajo intente y falle varias veces (hasta el límite de reintento). Luego compruebe su estado:
kubectl get jobs failed-job
Debería ver que muestra 0/1 completamientos y ha alcanzado la fecha límite de finalización.
Ahora, examinemos qué salió mal comprobando los registros de los pods fallidos:
kubectl get pods -l job-name=failed-job
Verá varios pods, todos en el estado Error. Elija uno y vea sus registros:
kubectl logs <failed-pod-name>
Debería ver:
Attempting task...
Los registros del pod muestran que la tarea comenzó pero luego salió con un código de error. Esta información es crucial para la depuración de fallos en el trabajo.
Siguiendo los Registros en Tiempo Real
Si desea seguir los registros de un trabajo en ejecución en tiempo real, puede usar la bandera -f:
kubectl logs -f <pod-name>
Esto es particularmente útil para trabajos de ejecución más larga donde desea ver la salida a medida que ocurre.
Creemos otro trabajo de larga duración para demostrarlo:
cd ~/project
nano counter-job.yaml
Copie y pegue el siguiente contenido YAML:
apiVersion: batch/v1
kind: Job
metadata:
name: counter-job
spec:
template:
spec:
containers:
- name: counter
image: busybox:1.28
command:
[
"sh",
"-c",
'for i in $(seq 1 5); do echo "Count: $i"; sleep 5; done'
]
restartPolicy: Never
Guarde el archivo y salga de nano, luego cree el trabajo:
kubectl apply -f counter-job.yaml
Ahora, sigamos sus registros. Primero, encuentre el nombre del pod:
kubectl get pods -l job-name=counter-job
Luego, siga sus registros:
kubectl logs -f <counter-job-pod-name>
Verá el conteo incrementándose cada 5 segundos:
Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
Presione Ctrl+C para dejar de seguir los registros.
Al comprender cómo acceder y analizar los registros, puede solucionar problemas y depurar eficazmente sus trabajos Kubernetes.