Ir al contenido principal

¿Qué es Prometheus y cómo se utiliza en Kubernetes?

 


¿Qué es Prometheus y cómo se utiliza en Kubernetes?

En el mundo de Kubernetes, donde los sistemas distribuidos y las aplicaciones contenedorizadas son la norma, contar con una solución sólida de monitoreo es crucial para entender el rendimiento de nuestras aplicaciones y detectar problemas antes de que se conviertan en fallos críticos. Prometheus se ha convertido en una de las herramientas de monitoreo más utilizadas y versátiles en Kubernetes, gracias a su capacidad para recopilar, almacenar y analizar métricas de sistemas distribuidos de forma eficiente.

En este artículo, veremos qué es Prometheus, cómo funciona y por qué es una pieza esencial en cualquier clúster de Kubernetes.

¿Qué es Prometheus?

Prometheus es una plataforma de monitoreo y alerta de código abierto que fue originalmente desarrollada por SoundCloud y ahora forma parte de la Cloud Native Computing Foundation (CNCF). Su principal objetivo es recopilar métricas de aplicaciones y sistemas distribuidos, almacenarlas y analizarlas para proporcionar información valiosa sobre el rendimiento y la salud de los servicios.

Prometheus se ha ganado su lugar como una de las herramientas más utilizadas en entornos de Kubernetes por varias razones:

  1. Métrica basada en "pull": A diferencia de otros sistemas de monitoreo que envían métricas a un servidor central (modelo "push"), Prometheus funciona mediante un modelo "pull". Es decir, Prometheus interroga a los diferentes sistemas y servicios para obtener sus métricas a intervalos regulares.

  2. Almacenamiento eficiente de series temporales: Prometheus está diseñado para manejar grandes volúmenes de datos de series temporales (es decir, datos que cambian con el tiempo), lo que lo hace perfecto para monitorizar aplicaciones en tiempo real.

  3. Alerta avanzada: Además de recopilar métricas, Prometheus permite definir reglas de alerta. Cuando alguna métrica sobrepasa un umbral predefinido, se pueden activar notificaciones que avisen al equipo de operaciones para que actúe rápidamente.

  4. Flexibilidad con métricas personalizadas: Los desarrolladores pueden crear métricas personalizadas que se adapten a las necesidades específicas de sus aplicaciones.

¿Cómo funciona Prometheus?

Prometheus recopila datos de los "targets" (objetivos) configurados mediante consultas HTTP, generalmente a través de puntos finales de métricas expuestos por las aplicaciones o servicios que monitorea. Una vez que Prometheus recopila los datos, los almacena en su base de datos de series temporales.

Las métricas en Prometheus se organizan en forma de series temporales etiquetadas. Cada métrica puede tener una o más etiquetas que describen el origen de los datos. Estas etiquetas permiten consultas flexibles, y gracias a su lenguaje de consultas PromQL (Prometheus Query Language), es posible hacer búsquedas complejas en los datos almacenados.

Prometheus en Kubernetes

En un clúster de Kubernetes, Prometheus se utiliza principalmente para monitorizar la salud y el rendimiento de los pods, servicios y otros componentes del clúster. Al integrar Prometheus en un clúster de Kubernetes, puedes obtener información detallada sobre el uso de CPU, memoria, tráfico de red y cualquier métrica personalizada que definas.

Prometheus recopila métricas de diferentes fuentes dentro del clúster, incluidos:

  • Pods y contenedores: Prometheus puede extraer métricas de los pods, como uso de CPU y memoria.
  • Nodes: Puedes monitorizar el rendimiento y la salud de cada nodo en tu clúster.
  • Servicios de red: Monitoriza el tráfico de red, solicitudes HTTP, latencia, entre otros.
  • Métricas personalizadas: Puedes definir y recolectar métricas específicas de tus aplicaciones.

Integración con Kubernetes

En Kubernetes, Prometheus puede integrarse de forma sencilla a través de Helm o Operator, dos maneras populares de instalar Prometheus. Cuando Prometheus se instala en un clúster, utiliza Service Discovery para encontrar automáticamente los pods y servicios que exponen métricas.

Además, con la ayuda de Alertmanager, que es un componente asociado a Prometheus, es posible configurar alertas y recibir notificaciones cuando alguna métrica sobrepasa un umbral crítico. Por ejemplo, si el uso de CPU de un pod supera un porcentaje determinado, se puede enviar una alerta al equipo encargado de la operación.

¿Cómo instalar Prometheus en Kubernetes?

La instalación de Prometheus en Kubernetes es bastante sencilla, especialmente si se utiliza Helm. A continuación, te mostramos los pasos básicos para instalar Prometheus en un clúster de Kubernetes:

  1. Añadir el repositorio de Prometheus:

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update
  2. Instalar Prometheus:

    helm install prometheus prometheus-community/prometheus

Esto creará todos los recursos necesarios en Kubernetes, incluidos los pods para Prometheus y el servidor web para acceder a sus métricas.

Accediendo a la interfaz de Prometheus

Una vez que Prometheus está instalado, puedes acceder a su interfaz web para explorar las métricas y ejecutar consultas. La interfaz de Prometheus te permite ver todas las métricas recolectadas y escribir consultas utilizando PromQL para obtener información específica.

Para acceder a la interfaz web de Prometheus desde tu máquina local, puedes usar el siguiente comando para hacer un port-forward:

kubectl port-forward deploy/prometheus-server 9090:9090

Luego, abre tu navegador y accede a http://localhost:9090.

Prometheus y el Horizontal Pod Autoscaler (HPA)

Una de las integraciones más poderosas de Prometheus con Kubernetes es con el Horizontal Pod Autoscaler (HPA). HPA es un recurso de Kubernetes que ajusta automáticamente el número de réplicas de pods basándose en el uso de recursos como CPU o memoria.

Con Prometheus, puedes ampliar esta funcionalidad para escalar en función de métricas personalizadas. Por ejemplo, puedes hacer que el HPA escale los pods en función del número de solicitudes HTTP por segundo que está manejando la aplicación, en lugar de simplemente basarse en el uso de CPU.


Comentarios

Entradas populares de este blog

Autenticación y Autorización (Kubernetes).

La autenticación en Kubernetes es un aspecto crítico para la seguridad y control de acceso dentro de un clúster. Kubernetes proporciona varios mecanismos de autenticación para usuarios y cuentas de servicio, que deben pasar a través del API Server para realizar cualquier operación. En este artículo, revisaremos cómo funciona la autenticación y cómo puedes usar herramientas como kubectl y curl para interactuar de manera segura con el clúster. En primer lugar, ¿Qué es la autenticación y la autorización? •     Autenticación:  Es el proceso de verificar quién es un usuario. Responde a la pregunta "¿Quién eres?". •     Autorización: El proceso de determinar qué acciones puede realizar un usuario autenticado. Responde a la pregunta "¿Qué puedes hacer?". Primer paso: Autenticación. La autenticación en Kubernetes es el proceso mediante el cual el sistema verifica la identidad de los usuarios y cuentas de servicio que intentan acceder al clúster.  ...

Tip 1. Exámen CKA. Economiza y optimiza tu tiempo; Usa --help con el paginador Less en la ayuda.

📘 Domina los comandos --help y el uso de less en el examen CKA Durante el examen CKA (Certified Kubernetes Administrator) , uno de los recursos más potentes y completamente permitidos es el uso del --help en los comandos de Kubernetes. Además, puedes combinarlo con el paginador less para buscar y navegar fácilmente entre opciones. ✅ ¿Está permitido usar --help ? Sí, está 100% permitido . Puedes usar el --help de cualquier comando disponible en el entorno del examen: kubectl --help kubeadm init --help kubelet --help kubectl explain pod.spec.containers Estos comandos muestran la ayuda y las opciones disponibles directamente desde el sistema, sin necesidad de ir a la documentación. 🔍 ¿Cómo usar less para buscar rápidamente? Cuando la salida del comando es larga, puedes usar | less para verla de forma paginada y navegar más cómodamente. kubeadm init --help | less Una vez dentro de less , puedes buscar cualquier texto escribiendo /texto . Por ejemplo: /pod-networ...

TLS Bootstrapping en Kubernetes: Qué es, cómo funciona y por qué importa en el examen CKA

                                                       Uno de los conceptos que a menudo pasan desapercibidos en la administración de Kubernetes —pero que resultan clave tanto en entornos reales como en el examen CKA— es el TLS Bootstrapping . En este artículo entenderás qué es, cómo funciona, qué lo diferencia del kubeadm join tradicional y cómo puede aparecer en el examen. ¿Qué es TLS Bootstrapping? TLS Bootstrapping es el proceso por el cual el kubelet , el agente que corre en cada nodo, obtiene automáticamente un certificado TLS firmado por el clúster para autenticarse con el kube-apiserver . En otras palabras: permite que un nuevo nodo se una de forma segura al clúster sin necesidad de copiar manualmente los certificados. ¿Por qué es necesario? Cuando añades un nuevo nodo worker, su kubelet necesita autentic...