Monitorización de Kubernetes: Una guía completa

Monitorización de Kubernetes: Una guía completa

  • ITOps y DevOps
6 min de lectura Actualizado Apr 1, 2021

Puntos clave: La monitorización de Kubernetes es esencial para gestionar cargas de trabajo distribuidas y optimizar el uso de recursos en clústeres. Consiste en seguir métricas clave para garantizar la salud de la aplicación y abordar los desafíos operativos.

  • Las métricas clave incluyen indicadores de rendimiento de clústeres y cápsulas.
  • Las herramientas más populares para monitorizar son Prometheus, Kubernetes Dashboard y la EFK Stack.

En Kubernetes (K8s), la monitorización implica diversas herramientas, métricas y metodologías para examinar el estado de salud de los componentes del clúster. El proceso permite esencialmente a desarrolladores y administradores controlar los problemas que pueden surgir al operar cargas de trabajo en clústeres complejos y distribuidos. Debido a la enorme cantidad de servicios y recursos conectados dentro de un clúster, monitorizar Kubernetes suele requerir una atención especial. Esto se está a que rastrear cambios y registrar eventos en componentes distribuidos de clúster conlleva su propia complejidad añadida. Exploremos varios aspectos de la monitorización de Kubernetes, incluyendo:

¿Qué están monitorizando Kubernetes?

Kubernetes facilita la ejecución de cargas de trabajo distribuidas y contenedorizadas. Pero este modelo también introduce la complejidad de manejar elementos de computación distribuidos y conectados. En configuraciones tan complejas, la monitorización está crucial para la gestión del ciclo de vida de una aplicación, ya que ayuda a depurar problemas que surgen cuando el clúster está operativo. La monitorización están la práctica de escanear todos los componentes críticos para asegurarse de que no son puntos únicos de fallo en un clúster. Algunas razones clave para la monitorización de Kubernetes incluyen:

  • Asegurar que los recursos son consumidos de forma óptima por un equipo o una aplicación concreta
  • Balancear cargas entre instancias de la aplicación alojadas en nodos separados
  • Aprovechando automáticamente los recursos disponibles cuando un nuevo nodo se une a un clúster
  • Redistribuir cargas de trabajo a otros nodos cuando un host cae
  • Provisión eficiente de actualizaciones y retromisiones cuando sea necesario

(Entiende las diferencias entre monitorización y observabilidad.)

Monitorización de Kubernets

Métricas de monitorización de Kubernetes

Diversas métricas ayudan a los desarrolladores a garantizar que son cargas de trabajo en producción funcionen de forma eficiente. Estas métricas son eventos críticos de contenedores, PODs, nodos así como de la aplicación, que Permite colectivamente a las herramientas de monitorización derivar un perfil a partir de las características del clúster. Al examinar un clúster Kubernetes, las métricas de rendimiento pueden categorizarse en:

  • Métricas de clúster
  • Métricas de pod

Métricas de clúster

Estas métricas Permite a los desarrolladores examinar el comportamiento de todos los nodos y recursos relacionados en un clúster. Estas métricas ayudan al administrador a:

  • Supervisa si el clúster está funcionando como se espera
  • Flag de recursos y utilización de capacidad de la aplicación
  • Vigila la carga de trabajo de cada nodo

Algunas métricas importantes a nivel de conglomerado incluyen:

  • Métricas basadas en recursos. Estas incluyen todas las métricas relacionadas con el consumo de recursos de cómputo, incluyendo la CPU, la utilización de discos y memoria, y el consumo de ancho de banda de red.
  • Métricas basadas en nodos. El número de nodos que permite a los desarrolladores seguir el coste de ejecutar el clúster en plataformas gestionadas y entender la carga de trabajo que se ejecuta en nodos del clúster.
  • Métricas basadas en pods. El número de PODs en ejecución para que los desarrolladores puedan asegurarse de que son suficientes nodos y que el clúster pueda manejar cargas de trabajo cambiantes en caso de fallo del nodo

Métricas de pod

Las herramientas de monitorización también pueden utilizarse para observar comportamientos específicos de POD y cómo Kubernetes gestiona un despliegue. Las métricas POD pueden ser de tres tipos: métricas de contenedores. Estas métricas son expuestas por el servidor de métricas haciéndolas disponibles a través de cAdvisor, un servicio centrado en contenedores. Las métricas de contenedor incluyen:

  • Uso de la red de contenedores
  • Consumo de CPU
  • Consumo de ancho de banda de red

Métricas de Kubernetes. Estas métricas supervisan qué tan bien se ha orquestado un despliegue y el estado de un POD. Las métricas de Kubernetes incluyen:

  • Estado de salud del POD
  • Progreso del despliegue
  • Datos de red
  • El número de instancias POD en funcionamiento actualmente

Métricas de la aplicación. Estas métricas son desarrolladas dentro del código de la aplicación, por lo que son más acordes con los requisitos del caso de negocio. Por ejemplo, una aplicación de comercio electrónico puede exponer datos sobre métricas como:

  • El número de usuarios conectados actualmente
  • Ingresos dentro de un determinado periodo de tiempo
  • Clics por hora

Una aplicación de base de datos, en cambio, puede exponer métricas relacionadas con los datos que se están tabulando. Durante el proceso de monitorización, las aplicaciones suelen exponer estas métricas a las herramientas de monitorización de Kubernetes a través de una API.

Métodos de monitorización de Kubernetes

Cuando se trata de extraer datos de métricas de clústeres Kubernetes, son dos enfoques principales:

  • Monitorización usando DaemonSets
  • Monitorización usando el Servidor de Métricas

Monitorización usando DaemonSets

Un DaemonSet están un POD especializado que garantiza que una instantánea de su carga de trabajo se ejecute en todos los nodos del clúster. Los desarrolladores pueden Crea un DaemonSet que ejecute un agente de monitorización en cada nodo del clúster para recopilar métricas de rendimiento. Como es fácil de provisionar, muchas soluciones de monitorización Kubernetes utilizan un enfoque DaemonSet para desplegar software de monitorización en nodos del clúster para examinar el estado del POD junto con los datos de rendimiento.

Monitorización usando el Servidor de Métricas

Anteriormente conocido como Heapster antes de ser obsoleto, el Servidor de Métricas envía datos de rendimiento a un servidor de almacenamiento diseñado para obtener estadísticas de clúster. A diferencia de un DaemonSet, un Servidor de Métricas actúa como un POD normal que recoge datos de rendimiento del servicio Kubelet y utiliza la API de Métricas para exponerlos al kube-apiserver. Un Servidor de Métricas está altamente escalable y se está considerado capaz de supervisar clústeres de hasta 5.000 nodos usando un solo despliegue, una elección eficiente para clústeres con grandes cargas de trabajo.

Herramientas populares de monitorización de K8s

Aquí tienes un breve resumen de las herramientas populares de monitorización de K8s.

Prometheus

Prometheus están una herramienta de monitorización de código abierto impulsada por la comunidad, gestionada por la Cloud Native Computing Foundation. Esta herramienta almacena los datos como una serie temporal a la que se puede acceder fácilmente mediante un lenguaje de consulta personalizado y luego renderizarse en una presentación integrada en navegador. A través del Prometheus Operator, aprovisionar su herramienta de monitorización en un clúster Kubernetes está relativamente sencillo en comparación con otras herramientas populares.

Panel de control de Kubernetes

Mantenida como parte de la pila Kubernetes, esta herramienta basada en interfaz de usuario viene lista de fábrica con numerosas funciones que permiten a los desarrolladores gestionar cargas de trabajo y comprobar la utilización de recursos en tiempo de ejecución. A través de varias perspectivas diferentes, esta herramienta proporciona información detallada que incluye Reclamaciones de Volumen Persistente, Mapas de Configuración, tipos de cargas de trabajo, uso de CPU y memoria, etc., en todos los nodos de un clúster.

Kubewatch

Kubewatch es un agente de monitorización que notifica a los desarrolladores eventos y registros a través de canales de colaboración como Slack y MS Teams. Al permitir que los desarrolladores especifiquen los recursos en un archivo YAML, Kubewatch permite integrar notificaciones con el canal de colaboración a través de un webhook. En lugar de ser una herramienta de monitorización completa, Kubewatch es un notificador de eventos que recuesta eventos críticos de un clúster Kubernetes a canales específicos para obtener información de los desarrolladores.

La pila EFK

EFK están una pila de herramientas que comprende ElasticSearch, Fluentd y Kibana y que en conjunto proporcionan registros e información crítica de un clúster operativo de Kubernetes. Estas herramientas trabajan juntas para:

  • Recoger los registros de clúster (a través de Fluentd)
  • Almacenar de forma centralizada (ElasticSearch)
  • Visualiza las métricas (Kibana UI)

Esta pila está especialmente útil para:

  • Detectar problemas a medida que surgen
  • Presentar problemas en una interfaz gráfica sencilla

Mejores prácticas para el monitoreo de K8s

La monitorización de Kubernetes presenta algunos retos específicos para:

Muchas mejores prácticas de Kubernetes apoyan la eficiencia del clúster. Aquí son algunas buenas prácticas para Haz el máximo partido a las soluciones de monitorización disponibles:

  • Hacer cumplir una estrategia de instrumentación estanca que permita a las herramientas de monitorización recopilar datos precisos sin perder ningún recurso dentro de un clúster.
  • Incluyendo datos históricos de rendimiento para descubrir problemas no vistos.
  • Desplegar soluciones de Monitorización como Código para Permite la automatización mientras mejora la productividad del equipo y el rendimiento del clúster.
  • Investigando a fondo para descubrir problemas de rendimiento a nivel de kernel.
  • Desarrollar estándares de monitorización a nivel organizacional para mantener la monitorización en el núcleo del desarrollo.

La monitorización fomenta la eficiencia del clúster

Automatizar la administración de Kubernetes requiere un enfoque enfocado, herramientas dedicadas y las metodologías adecuadas para supervisar proactivamente los recursos del clúster. Al proporcionar un mecanismo de monitorización eficiente, las organizaciones pueden:

  • Aumentar la eficiencia del clúster
  • Reduce costes operativos (OpEx)
  • Mantener proactivamente los recursos en estándares óptimos

Lecturas relacionadas

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de ITOps y DevOps

Suscríbete al Informe

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Gracias te

Tú te has suscrito a The Brief
El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.