Inicio

Topics

Supervisión de Kubernetes

Qué es la monitorización de Kubernetes?
Explore la solución de monitorización de Kubernetes de IBM Regístrese para recibir actualizaciones sobre IA
Trabajador portuario con portapapeles mirando dentro de un contenedor de envío
Qué es la monitorización de Kubernetes?

La monitorización de Kubernetes se refiere al proceso de recopilación y análisis de datos relacionados con la salud, el rendimiento y las características de coste de las aplicaciones en contenedores que se ejecutan dentro de un clúster Kubernetes.

Kubernetes, también conocido como K8s o kube, es una plataforma de orquestación de contenedores para programar y automatizar la implementación, la gestión y el escalado de aplicaciones en contenedores. Diseñado originalmente por Google, el proyecto lo mantiene ahora la Cloud Native Computing Foundation (CNCF).

La monitorización de los clústeres de Kubernetes permite a los administradores y usuarios realizar un seguimiento de aspectos como el tiempo de actividad, el uso de los recursos del clúster y la interacción entre los componentes del clúster. La monitorización ayuda a identificar rápidamente problemas como recursos insuficientes, fallos, pods que no pueden iniciarse y nodos que no pueden unirse al clúster.

Las aplicaciones en Kubernetes distribuidas como microservicios nativos de la nube tienen un orden de magnitud más de componentes que se comunican entre sí. Distribuidas en múltiples instancias e incluso ubicaciones, las arquitecturas modernas añaden nuevas complejidades a las tareas diarias de monitorización, alerta y resolución de problemas.

Además, la naturaleza efímera de los contenedores puede dificultar los esfuerzos de resolución de problemas. Los contenedores suelen vivir tanto como el proceso que se ejecuta dentro de ellos y desaparecen cuando ese proceso muere. Esta es una de las partes más complicadas de la resolución de problemas con contenedores. Cuando los contenedores se eliminan o se reprograman en nodos alternativos, es posible que los detalles que necesita para responder a incidentes ya no existan.

Aunque Kubernetes ha incorporado operadores de clústeres para monitorizarlos y enviar alertas basadas en pods en ejecución, las herramientas de código abierto y las soluciones de monitorización de terceros ayudan a ofrecer una visibilidad completa de un entorno K8s.

Guía para la automatización inteligente de toda la empresa

Descubra cómo la automatización inteligente puede hacer que sus operaciones comerciales sean una ventaja competitiva.

Contenido relacionado Regístrese para obtener la guía para operacionalizar FinOps
Beneficios de la monitorización de Kubernetes

Una monitorización adecuada de Kubernetes ofrece una serie de ventajas, desde el mantenimiento de la estabilidad y la capacidad de respuesta del rendimiento de las aplicaciones hasta la mejora de la seguridad y el cumplimiento normativo.

Optimización del rendimiento

Mediante el seguimiento y el análisis de métricas como el consumo de CPU, el uso de memoria, el tráfico de red y los tiempos de respuesta, es posible identificar áreas de ineficiencia, optimizar la asignación de recursos y ajustar una infraestructura de Kubernetes para un rendimiento óptimo.

Esto puede resultar en una mejora de la capacidad de respuesta de las aplicaciones y en una mejor experiencia de usuario.

Uso eficiente de los recursos

Mediante la monitorización de métricas de uso de recursos como el uso de CPU, el consumo de memoria y el tráfico de red, es posible identificar nodos Kubernetes infrautilizados o sobreutilizados, optimizar la asignación de recursos y tomar decisiones informadas sobre el escalado de la infraestructura.

Esto ayuda a garantizar que las aplicaciones tengan los recursos necesarios para funcionar de manera óptima, con el beneficio adicional de reducir los costes.

Detección proactiva de problemas

Las alertas y notificaciones ayudan a identificar y abordar de forma proactiva la causa raíz de los problemas de Kubernetes antes de que provoquen interrupciones o tiempos de inactividad.

Los resultados son una mejor estabilidad del sistema y un impacto mínimo de los posibles problemas en las aplicaciones y los usuarios.

Solución de problemas y depuración rápidas

Los registros de monitorización, los eventos y las métricas ayudan a identificar y diagnosticar rápidamente problemas, como fallos de pods, limitaciones de recursos, problemas de red o errores de aplicaciones.

Al acelerar el proceso de depuración, se reduce el tiempo de inactividad y las aplicaciones siguen estando disponibles.

Planificación y escalabilidad de la capacidad

Mediante el análisis de los datos históricos y la monitorización de las tendencias en la utilización de los recursos, es posible prever mejor las necesidades futuras de recursos, identificar cuándo se necesitan más recursos de Kubernetes y planificar el escalado de los clústeres en consecuencia.

En última instancia, el aumento de la carga de trabajo no provocará escasez de recursos.

Seguridad y cumplimiento mejorados

Monitorizar los registros, el tráfico de la red y los patrones de acceso de Kubernetes facilita la identificación de las actividades anómalas, las posibles infracciones y los intentos de acceso no autorizado.

Además, garantizar que los controles y políticas de seguridad adecuados estén en vigor y se monitoricen activamente ayuda a mantener el cumplimiento de las normas y reglamentos.

Qué métricas de K8 deben monitorizarse

La visibilidad completa de una pila Kubernetes requiere la recopilación de datos de telemetría sobre los contenedores que se crean, destruyen y se llaman entre sí constantemente, así como la recopilación de datos de telemetría sobre el propio clúster Kubernetes.

Monitorización a nivel de clúster

Para la monitorización de clústeres, hay que seguir varias métricas a nivel de clúster, que ayudan a determinar el estado general de un clúster de Kubernetes.

Funciones de nodo: monitorizar si todos los nodos del clúster funcionan correctamente y a qué capacidad ayuda a determinar qué recursos de nube se necesitan para ejecutar el clúster.

Disponibilidad de nodos: monitorizar cuántos nodos de clúster están disponibles ayuda a determinar qué recursos de la nube se pagan (si se utiliza un proveedor de nube como AWS o Microsoft Azure) y cómo se utiliza el clúster.

Uso de recursos de nodos: monitorizar cómo el clúster en su conjunto utiliza recursos (memoria, CPU, ancho de banda y uso de disco) ayuda a tomar decisiones informadas sobre si aumentar o disminuir el tamaño o el número de nodos en un clúster.

Número de pods en ejecución: la monitorización de los pods en ejecución muestra si el número de nodos disponibles es suficiente y, en caso de fallo de un nodo, si podrían o no manejar toda la carga de trabajo del pod.

Monitorización a nivel de pod

La monitorización a nivel de pod es necesaria para garantizar que los pods individuales dentro de un clúster Kubernetes funcionan correctamente. Esto implica examinar tres tipos de métricas: métricas de Kubernetes, métricas de contenedores y métricas de aplicaciones.

1. Métricas de Kubernetes

La monitorización de las métricas de Kubernetes ayuda a garantizar que todos los pods de una implementación de Kubernetes funcionen y estén en buen estado.

Número de instancias de pod: si el número actual de instancias que tiene un pod en comparación con el número esperado es bajo, es posible que el clúster se haya quedado sin recursos.

Estado de pods: saber si los pods se están ejecutando y cuántos están pendientes, han fallado o han finalizado proporciona visibilidad sobre su disponibilidad y estabilidad.

Reinicios de pods: la monitorización del número de veces que se reinicia un pod indica la estabilidad de la aplicación dentro del pod. Con reinicios frecuentes, un problema subyacente, como bloqueos o limitaciones de recursos, puede ser el problema.

Uso de CPU: la monitorización del consumo de CPU de un pod ayuda a identificar posibles cuellos de botella en el rendimiento y garantiza que los pods tengan suficientes recursos de procesamiento.

Uso de memoria: la monitorización del consumo de memoria de un pod ayuda a detectar fugas de memoria o un uso excesivo de memoria que podría afectar a la estabilidad de una aplicación.

Uso de la red: la monitorización de los bytes enviados/recibidos de un pod proporciona información sobre sus patrones de comunicación y ayuda a identificar cualquier problema de red.

Las métricas de Kubernetes también incluyen comprobaciones de estado, datos de red y la evolución de la implementación en curso (es decir, el número de instancias cambiadas de una versión anterior a una nueva).

2. Métricas de contenedores

La monitorización de las métricas de los contenedores de pods ayuda a determinar lo cerca que está de los límites de recursos que ha configurado. Estas métricas también le permiten detectar pods atascados en un CrashLoopBackoff.

Uso/limitación de la CPU: monitorizar cómo los contenedores en ejecución consumen CPU ayuda a identificar aquellos que consumen muchos recursos o crean cuellos de botella, lo que podría afectar el rendimiento general del clúster. El seguimiento de las métricas de limitación de la CPU pone de manifiesto si se está limitando el uso de la CPU de los contenedores debido a restricciones de recursos o a errores de configuración.

Uso de memoria: monitorizar cómo los contenedores en ejecución consumen memoria llama la atención sobre problemas como fugas de memoria, uso excesivo de memoria o asignación de memoria insuficiente, que podrían estar afectando a la estabilidad del contenedor y al rendimiento general del sistema.

Tráfico/errores de red: la monitorización del tráfico de red de los contenedores, así como de errores como la pérdida de paquetes o los fallos de conexión, ayuda a evaluar sus patrones de comunicación y el uso excesivo de la red o los picos inesperados de tráfico.  

3. Métricas de la aplicación

La monitorización de las métricas de la aplicación ayuda a medir el rendimiento y la disponibilidad de las aplicaciones que se ejecutan dentro de los pods de Kubernetes. Estas métricas suelen ser desarrolladas por la propia aplicación Kubernetes y están relacionadas con las reglas de negocio que aborda, como la latencia, la capacidad de respuesta, las tasas de error y los tiempos de respuesta.

Mejores prácticas de monitorización de Kubernetes

A continuación se presentan varias buenas prácticas a tener en cuenta para monitorizar con éxito los entornos de Kubernetes.  

Utilizar los DaemonSets de Kubernetes: los DaemonSets le permiten implementar un agente que monitoriza cada nodo de su entorno Kubernetes y todos los recursos de ese nodo en todo el clúster Kubernetes. Los daemons ayudan a garantizar que los hosts aparezcan y estén preparados para proporcionar métricas.

Hacer un uso inteligente de las etiquetas: la creación de un esquema de etiquetado lógico, consistente y coherente facilita a los equipos de DevOps la identificación de diferentes componentes y ayuda a ofrecer el máximo valor de su monitorización de Kubernetes.

Utilizar Service Discovery: Service Discovery for Google Kubernetes Engine (GKE) le permite monitorizar continuamente sus aplicaciones aunque no sepa dónde se están ejecutando. Adapta automáticamente la recopilación de métricas a los contenedores en movimiento para una comprensión más completa de la salud de un cluster.

Configurar alertas y notificaciones: configure alertas y notificaciones para métricas cruciales, como el uso de la CPU o la memoria, y reciba notificaciones cuando esas métricas alcancen ciertos umbrales. Las herramientas de monitorización con alertas inteligentes ayudan a minimizar la fatiga por alertas, ya que solo le envían alertas de eventos o cambios importantes.

Monitorizar los elementos del plano de control: monitorizar regularmente los elementos del plano de control de Kubernetes, como el servidor API, kube-dns, kubelet, kube-proxy, etcd y el gestor de controladores, ayuda a garantizar que los servicios del clúster funcionan sin problemas.

Monitorizar la experiencia del usuario: aunque no se mide de forma nativa en la plataforma Kubernetes, la monitorización de la experiencia del usuario a veces puede alertarle sobre problemas antes de que se descubran dentro del clúster.

Utilizar herramientas integradas y de código abierto: independientemente de sus casos de uso, aproveche las herramientas de monitorización de Kubernetes integradas, como Kubernetes Dashboard, cAdvisor (Container Advisor) y Kube-State-Metrics, así como las populares herramientas de código abierto, como Prometheus, Grafana, Jaeger y Elastic Stack (antes ELK Stack). Además de implementar, solucionar problemas y monitorizar, estas herramientas ofrecen funciones añadidas como la visualización de datos y la recopilación y almacenamiento de métricas de series temporales procedentes de diversas fuentes.

Utilizar una solución de monitorización K8s basada en SaaS: para facilitar la gestión de Kubernetes, el desarrollo de la infraestructura y los costes, además de recibir actualizaciones periódicas, utilice un sistema de monitorización basado en SaaS con automatización integrada en lugar de uno local.

Soluciones relacionadas
IBM Instana Observability

Vaya más allá de las soluciones APM tradicionales democratizando la capacidad de observación para que cualquier persona de DevOps, SRE, ingeniería de plataformas, ITOps y desarrollo pueda obtener los datos que desea con el contexto que necesita.

Explore Instana

Plataforma IBM Turbonomic Application Resource Management (ARM)

Cuando las aplicaciones consumen sólo lo que necesitan para funcionar, puede mejorar la eficiencia operativa, aumentar la utilización y reducir los costes energéticos y las emisiones de carbono asociadas.

Explore Turbonomic

IBM Cloud Monitoring

Utilice telemetría de pila completa para gestionar arquitecturas centradas en contenedores y microservicios con funciones avanzadas para monitorizar, solucionar problemas, definir alertas y diseñar paneles de control personalizados.

Explore la monitorización de la nube
Recursos ¿Qué es Kubernetes?

Comprenda mejor qué es Kubernetes, por qué es importante, cómo funciona y por qué sigue aumentando su popularidad como plataforma de orquestación de contenedores.

¿Qué son los contenedores?

Conozca la importancia de los contenedores en el cloud computing, sus principales ventajas y el ecosistema emergente de tecnologías relacionadas, como Docker, Kubernetes, Istio y Knative.

Informe PeerPaper 2023: Mejores prácticas para elegir una solución de optimización de la nube

Descargue este informe para conocer las mejores prácticas y consideraciones para seleccionar una solución de optimización de la nube de los miembros de PeerSpot que utilizan Turbonomic.

Dé el siguiente paso

IBM Instana proporciona observabilidad en tiempo real que todos pueden utilizar. Proporciona un tiempo de obtención de valor rápido a la vez que verifica que su estrategia de observabilidad pueda seguir el ritmo de la complejidad dinámica de los entornos actuales y futuros. Desde dispositivos móviles hasta mainframe, Instana es compatible con más de 250 tecnologías y sigue creciendo. 

Explore IBM Instana Solicite una demostración en directo