6 comandos de diagnóstico de Kubernetes
Si buscabas comandos de diagnóstico de Kubernetes para tu día a día, has llegado al lugar correcto. Esto es de especial utilidad para administradores que tienen a cargo uno o más clusters de Kubernetes, así como también las múltiples aplicaciones que corren encima.
Por eso mismo, en este post te comparto 6 comandos de Kubernetes que son comúnmente utilizados para el diagnóstico de rendimiento:
1. kubectl top nodes
Muestra el uso de recursos en los nodos del clúster, incluyendo la CPU y la memoria
kubectl top nodes
Así es como luce la salida de este comando.
Usualmente usamos este comando cuando queremos tener una visión general del cluster y su consumo de recursos.
Es clave saber qué nodos están más cargados que otros y con ello ver si hace falta configurar algunas reglas de affinity, taints o tolerations para distribuir los Pods entre los diversos nodos worker de Kubernetes.
2. kubectl top pods
Proporciona información sobre el uso de recursos por parte de los pods en el clúster.
kubectl top pods
Así es como luce la salida de este comando.
El ejemplo usa la opción --sort-by memory que permite ordenar el listado por consumo de memoria de los Pods.
Este comando nos permite ver la cantidad de Pods y consumo de recursos de cada uno en un namespace deseado. De ese modo podemos tener una idea de qué tan lejos o cerca están los Pods de alcanzar los límites de recursos configurados y qué tanto estarían próximos a escalar en caso tengamos HPA (Horizontal Pod Autoscaler) configurado.
3. kubectl describe node <nombre-nodo>
Proporciona información detallada sobre un nodo específico, incluyendo la capacidad y el estado actual.
kubectl describe node <nombre-nodo>
La salida de este comando es bastante extensa y rica en diversa información. Aquí mostramos algunas partes relevantes:
Aquí observamos datos importantes sobre los labels, annotations y taints (ninguno configurado) del nodo, lo cual nos permite identificar posibles criterios de clasificación u organización de nuestras aplicaciones en los nodos.
Acá se observa información sobre capacidades del nodo, pero también una sección importante resaltada en rojo donde se ve que no se tiene ninguna de las condiciones de salud fallida (MemoryPressure, DiskPressure, PIDPressure), sino más bien el nodo se encuentra en estado Ready.
Por último, aquí se tiene un resumen de los Pods en ejecución dentro del nodo, así como también la cantidad de recursos en uso.
4. kubectl describe pod <nombre-pod>
Muestra detalles sobre un pod específico, incluyendo los eventos relacionados con él.
kubectl describe pod <nombre-pod>
La salida de este comando puede ser extensa, pero lo más importante y reciente suele estar al final. Esto es la sección de Eventos:
5. kubectl logs <nombre-pod>
Muestra los registros de un pod específico, lo que puede ser útil para identificar problemas de aplicación.
kubectl logs <nombre-pod>
6. kubectl get events
Muestra los eventos que han ocurrido en el clúster, lo que puede ayudar a identificar problemas.
kubectl get events
Usualmente este comando de diagnóstico se ejecuta por cada namespace de Kubernetes, pero con la opción -A se lista los eventos de todos los namespaces lo cual nos permite una visión general del estado del cluster y las aplicaciones que corren dentro.
Conclusión
¿Qué te pareció esta lista de comandos de diagnóstico de Kubernetes? ¿Ya la conocías? Comparte si te sirvió o sino déjame tus comentarios.
Deja un comentario