¡Elija la herramienta adecuada para supervisar con éxito Kubernetes!
Kubernetes es una plataforma de código abierto lista para la producción, diseñada con la experiencia adquirida por Google en la orquestación de contenedores, asociada a las mejores ideas del público. Está proyectada para automatizar el despliegue, el escalado y el funcionamiento de los contenedores de aplicaciones.
Con la forma moderna de construir y ejecutar aplicaciones, sus estrategias de control y observabilidad deben avanzar, y también las herramientas que utiliza. Las herramientas tradicionales de supervisión de infraestructuras pueden no ser suficientes, y necesitará un sistema especializado de supervisión de Kubernetes, como los que se enumeran a continuación.
Algunos ayudan con registros y otros con métricas. Algunas ofrecen una interfaz para manejar Kubernetes a vista de pájaro. Algunas son nativas de Kubernetes, mientras que otras son más agnósticas.
Exploremos las siguientes herramientas para monitorizar Kubernetes.
Prometheus Grafana
Prometheus es una de las herramientas de monitorización más populares y mejor utilizadas con Kubernetes. Esta herramienta fue desarrollada en sus inicios por SoundCloud y posteriormente donada al CNCF. Google Borg Monitor la inspira.
Pues bien, Prometheus almacena todos sus datos como una secuencia temporal. En pocas palabras, lo que hace que Prometheus destaque entre otras bases de datos de series temporales son sus mecanismos de alerta incorporados, el modelo de datos multidimensional, el modelo pull vs. push, PromQL (el lenguaje de consulta de Prometheus) y, por supuesto, la comunidad en constante crecimiento.
Algunas características más de Prometheus incluyen:
- No depende del almacenamiento distribuido;
- Los objetivos se descubren mediante el descubrimiento de servicios o la configuración estática.
- PromQL, un lenguaje de consulta flexible para aprovechar esta dimensionalidad
- Los nodos del servidor son autónomos
- La recopilación de series temporales se produce a través de un modelo pull sobre HTTP
- El envío de series temporales se realiza a través de una pasarela intermediaria
- Un modelo de datos multidimensional con datos de series temporales analizados por nombre de métrica y pares clave/valor
- Y, múltiples formas de soporte de gráficos y cuadros de mando
La mejor manera de aprender Prometheus es instalarlo en su servidor dev y jugar con él. Tienen una gran documentación, pero si usted está buscando para el aprendizaje basado en vídeo, echa un vistazo a este curso Udemy.
Puede utilizar Kube Prometheus, que ofrece monitorización de clústeres de extremo a extremo. Alternativamente, puede utilizar Kube State Metrics para exponer el estado de los objetos.
Y para visualizar los datos, puede utilizar Grafana.
Grafana sirve para visualizar métricas, pero también es una herramienta de alerta. Grafana puede emitir una alerta en Slack, webhook, correo o canales de comunicación alternativos. Otra razón clave es la fuente de sus datos: Grafana puede consultar varias entidades simultáneamente.
Puede consultar las métricas de Prometheus desde Grafana y visualizarlas, crear un panel de control y configurar las alertas según sus necesidades. Grafana tiene un plugin para Kubernetes y ha conseguido un bonito cuadro de mandos.
Combinando Prometheus y Grafana, puede conseguir un gran nivel de monitorización de Kubernetes para su sistema de producción.
Checkmk
La última versión de Checkmk incluye una monitorización de Kubernetes completamente renovada, que le permite analizar y monitorizar al instante las interrelaciones dinámicas de las infraestructuras de contenedores. Esto proporciona una supervisión en profundidad de todos sus objetos Kubernetes y es muy sencillo de utilizar.
No necesita experiencia previa con infraestructuras dinámicas y puede configurar la supervisión de Kubernetes en cuestión de minutos. Checkmk añade automáticamente todos sus objetos Kubernetes y puede monitorizar activos Kubernetes como clústeres, códigos, despliegues, pods, volúmenes, espacios de nombres, daemonSets y statefulSets.
La monitorización proporciona todos los datos relevantes en paneles preconfigurados. Esto le permite detectar cuellos de botella y anomalías en el consumo de recursos en cuestión de minutos. También puede crear sus propias vistas personalizadas. Navegue a través de múltiples vistas simplemente haciendo clic en los distintos elementos.
La forma más sencilla de desplegar Checkmk en Kubernetes es utilizar un repositorio helm. tribe29 proporciona una plantilla que los usuarios pueden adaptar a su propio entorno. Puede seguir este videotutorial para Kubernetes y comenzar con una prueba gratuita de Checkmk Enterprise Edition.
Checkmk no se detiene ahí, por supuesto. Con más de 2.000 complementos listos para usar, puede supervisar cualquier aspecto de su infraestructura de TI con una sola herramienta. Llegue al fondo de los problemas y analice la interrelación de su sistema host Kubernetes y sus contenedores orquestados, por ejemplo. Con Checkmk, obtendrá una visión profunda de la CPU, la memoria, el ancho de banda de la red y otras métricas.
La visualización de datos y la comunicación de alertas se adaptan a los requisitos de diversos equipos. Checkmk también puede integrarse con otras herramientas de supervisión como Prometheus, ntop o Datadog. Dispondrá de toda la información en un único lugar y podrá asegurarse de que las perspectivas se compartan automáticamente.
Algunas de las otras características de Checkmk incluyen:
- Alertas inteligentes que comprenden las capacidades de autorreparación de Kubernetes y resaltan las condiciones críticas sólo cuando es realmente necesario actuar
- Potente recopilador de clústeres Kubernetes para obtener todos los datos que necesita
- Soporta encriptación TLS para asegurar su monitorización
Checkmk es extremadamente escalable gracias a su núcleo de monitorización de alto rendimiento y a su capacidad para soportar la monitorización distribuida.
Kubewatch
Kubewatch es un observador de Kubernetes que publica notificaciones de eventos en un canal de Slack. Esta herramienta le ofrece la posibilidad de determinar los recursos que necesita supervisar. Está creada en Golang y utiliza una biblioteca cliente de Kubernetes para conectar con un servidor API de Kubernetes. Esta biblioteca sirve de base para la vigilancia de eventos de Kubernetes.
kubewatch es sencillo de configurar y puede desplegarse utilizando helm o el despliegue del sistema. Más claramente, kubewatch verá los cambios necesarios en los recursos específicos de Kubernetes que usted le pida que vigile: despliegues, conjuntos de demonios, pods, servicios, conjuntos de réplicas, servicios, controladores de replicación, secretos y mapas de configuración.
Jaeger
El rastreo distribuido está creciendo de forma constante en la monitorización y resolución de problemas de entornos Kubernetes. Jaeger es un sistema de rastreo distribuido por Uber Technologies. Se utiliza para monitorizar transacciones y solucionar problemas en sistemas distribuidos complejos.
Jaeger cuenta con instrumentación basada en OpenTracing para Java, Python, Node y C . Utiliza un muestreo consistente por adelantado con probabilidades individuales por servicio/punto final y admite múltiples backends de almacenamiento: Cassandra, Elasticsearch, Kafka y memoria.
Algunas de las otras características de Jaeger incluyen:
- Monitorización distribuida de transacciones
- Propagación distribuida de contextos
- Optimización del rendimiento / latencia
- Análisis de la causa raíz
- Análisis de dependencia de servicios
cAdvisor
cAdvisor está diseñado para reunir, procesar y exportar información sobre el uso de recursos y la producción de los contenedores en ejecución. También está desarrollado en Kubernetes e integrado en el binario Kubelet. Es sencillo de utilizar (expone métricas Prometheus out-of-the-box) pero no lo suficientemente robusto como para ser reconocido como una solución de monitorización integral.
A diferencia de otros, cAdvisor no se despliega por pod sino a nivel de nodo. Determinará automáticamente todos los contenedores que se ejecutan en un sistema y recopila métricas del sistema como memoria, CPU, red, etc.
cAdvisor es una herramienta básica, y las siguientes son algunas de sus características.
- Soporte nativo para contenedores Docker y ayuda a otros tipos de contenedores.
- Soporta la exportación de las estadísticas a varios plugins de almacenamiento, ej. InfluxDB etc.,
- Proporciona el uso general de la máquina analizando el contenedor «raíz» de la máquina.
- También admite la ejecución autónoma fuera de Docker o de cualquier otro contenedor.
- cAdvisor funciona por nodo. Autodescubre todos los contenedores del nodo en cuestión y recopila estadísticas de uso de la CPU, del sistema de archivos y de la red. Puede ver las métricas en la Web-UI, que exporta información en directo sobre todos los contenedores del sistema.
Telepresencia
La telepresencia le permite ejecutar un servicio determinado localmente mientras conecta ese servicio a un clúster Kubernetes remoto. Esto permite a los desarrolladores que trabajan en operaciones multiservicio adoptar cualquier herramienta instalada localmente para comprobar/depurar/editar su servicio. Por ejemplo, pueden ejecutar un depurador o un IDE.
También permite a los desarrolladores realizar un rápido desarrollo local de un servicio concreto, incluso si ese servicio depende de otros servicios del clúster. Realice una transición a su servicio, guarde y podrá ver al instante el nuevo servicio en acción.
Telepresence es un entorno de desarrollo local impresionante para los servicios que se ejecutan en Kubernetes. La parte de depuración en vivo es única y está evolucionando con bastante rapidez. A continuación se detallan algunas de sus más características.
- Permite que el código que se ejecuta en el contenedor se conecte a un IDE o depurador que se ejecute en el host.
- Telepresencia utiliza una imagen proxy específica de OpenShift cuando observa un clúster OpenShift.
- Telepresencia también soporta el reenvío de tráfico hacia y desde otros contenedores en el pod.
- Telepresencia utiliza un directorio accesible desde Docker como dir temporal.
Weave Scope
WeaveScope es una herramienta de resolución de problemas y monitorización para Kubernetes. Realiza topologías lógicas de su aplicación e infraestructura, que le facilitan considerar, supervisar y controlar su aplicación en contenedores y basada en microservicios.
Ofrece una visión descendente de su aplicación, así como de toda su infraestructura. Le autoriza a determinar cualquier problema con su aplicación distribuida en contenedores en tiempo real, a medida que se despliega en un proveedor en la nube.
Algunas de las características de Weave Scope incluyen:
- Compatibilidad con cualquier estilo de despliegue (local, alojado o híbrido) y capacidad para recopilar e informar sobre las métricas del host/contenedor
- Métricas agregadas, eventos y etiquetas de Kubernetes
- Métricas contextuales en tiempo real
- Los nodos pueden filtrarse por gestión de CPU y memoria para que pueda identificar rápidamente los contenedores que utilizan más recursos.
Zabbix
Con Zabbix, es factible construir virtualmente tipos ilimitados de datos del sistema. Sistemas de monitorización en tiempo real de alto rendimiento con los que podrá controlar decenas de miles de servidores, máquinas virtuales y dispositivos de red simultáneamente.
Además de guardar los datos, se puede acceder a funciones de visualización y a formas extremadamente flexibles de averiguar los datos para crear alarmas.
Algunas de las características de Zabbix incluyen:
- Análisis de causa raíz
- Zabbix ayuda a guardar los datos en formato JSON, por lo que muchas aplicaciones también pueden utilizarlo.
- Monitorización en tiempo real
- El proxy Zabbix es altamente sugerido para sistemas de producción a gran escala.
- Informes de desglose
- El descubrimiento de bajo nivel comprueba automáticamente los nuevos nodos sin ninguna lucha.
- Altamente configurable y extensible.
Zabbix es significativo y no sólo Kubernetes, pero apto para monitorear la infraestructura y las métricas de aplicación también. Si está interesado en aprender Zabbix, consulte este brillante curso.
Cuadro de mandos de Kubernetes
No es exactamente una herramienta de monitorización, pero Kubernetes Dashboard es una interfaz de usuario de propósito general para Kubernetes donde puede gestionar y solucionar problemas del clúster Kubernetes.
Si no tiene ninguna herramienta de monitorización, entonces Dashboard sería un buen comienzo. Consulte la guía de instalación.
Conclusión
Elegir las herramientas K ubernetes adecuadas es crucial. Pero, ¿adivine qué? Por encima de todo está disponible en GRATIS para probar, así que ¿por qué no darle una oportunidad para ver lo que funciona para su monitoreo de Kubernetes?
¡Feliz monitorización y resolución de problemas!