¿Cómo observar las métricas y las implementaciones de Kubernetes: Una guía completa?

Kubernetes es un sistema de orquestación de contenedores muy dinámico, y su monitoreo efectivo es esencial para mantener el rendimiento, la fiabilidad y la seguridad. La observabilidad en Kubernetes garantiza una alta disponibilidad y un rendimiento óptimo del sistema. Dado que los entornos Kubernetes son dinámicos y distribuidos, el monitoreo efectivo de las implementaciones, los pods y las métricas del sistema requiere un enfoque de observabilidad integral. Implica el control de métricas, logs y trazas en tiempo real para comprender cómo se comportan las aplicaciones y los componentes de la infraestructura. Obtenga más información sobre qué es el monitoreo de Kubernetes aquí.

Esta guía cubre cómo realizar el monitoreo de Kubernetes tanto para métricas como para implementaciones en profundidad, utilizando tanto herramientas nativas (kubectl, Metrics Server) como soluciones de terceros (Prometheus, Grafana, ManageEngine Applications Manager).

El imperativo de la observabilidad de Kubernetes: Por qué importa más que nunca

Los entornos Kubernetes son intrínsecamente efímeros y complejos. Las cargas de trabajo se crean, escalan y destruyen constantemente. Este dinamismo, unido a la naturaleza distribuida de las arquitecturas de microservicios, requiere una estrategia de observabilidad robusta. Sin él, corre el riesgo de:

  • Rendimiento impredecible: Las cargas de trabajo efímeras y el autoescalamiento pueden provocar fluctuaciones inesperadas de los recursos, lo que repercute en el rendimiento de las aplicaciones.
  • Pesadillas de resolución de problemas: Los microservicios distribuidos dificultan la localización de la causa raíz de los problemas sin un control de las solicitudes de extremo a extremo.
  • Vulnerabilidades de seguridad: La falta de visibilidad del comportamiento de las aplicaciones puede dejar sus sistemas vulnerables a las amenazas de seguridad.
  • Despilfarro de recursos: Una asignación ineficiente de los recursos puede generar costos innecesarios

Para mitigar estos riesgos y garantizar el buen funcionamiento de sus implementaciones de Kubernetes, debe adoptar los tres pilares de la observabilidad:

  • Métricas: Datos numéricos en tiempo real que proporcionan una visión cuantitativa del rendimiento del sistema y de las aplicaciones.
  • Logs: Registros basados en texto de eventos y errores, que ofrecen una información contextual del comportamiento de la aplicación.
  • Trazas: Control de extremo a extremo de las solicitudes a medida que se propagan a través de los microservicios, revelando las dependencias y la latencia.

Combinando estos elementos, los equipos de DevOps pueden detectar anomalías, solucionar problemas y optimizar el rendimiento.

Observación de las métricas de Kubernetes: El pulso de su clúster

Las métricas proporcionan una visión cuantitativa en tiempo real de su entorno Kubernetes. Kubernetes proporciona múltiples herramientas integradas y externas para recopilar métricas. He aquí un par de formas de obtener las métricas de Kubernetes:

1. Aprovechamiento del servidor de métricas de Kubernetes para obtener información básica sobre los recursos:

El servidor de métricas es un agregador ligero, dentro del cluster, de datos de uso de recursos. Es ideal para:

  • Autoescalamiento horizontal de pods (HPA): Habilitación del escalamiento dinámico basado en la utilización de recursos.
  • Comprobaciones rápidas de recursos: Proporcionando una instantánea del uso de CPU y memoria en todos los nodos y pods.
  • Solucionar los picos repentinos: Identificación de cuellos de botella inmediatos en los recursos.

Instalación:

Utilice el siguiente script bash:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

Verificación:

kubectl get deployment metrics-server -n kube-system

Comandos comunes:

Kubernetes expone datos clave sobre la utilización de recursos a través del servidor de métricas. A continuación, se indican algunos de los comandos para obtener la utilización de recursos del servidor de métricas:

  • kubectl top nodes: Uso de CPU/memoria del nodo.
  • kubectl top pods --all-namespaces: Uso de CPU/memoria del pod.
  • kubectl describe pod <pod-name>: Información detallada del pod (solicitudes/límites de recursos).
  • kubectl get pods --all-namespaces: Lista de estado de los pods.

Limitaciones:

El servidor de métricas no almacena datos históricos, lo que limita su uso para el análisis de tendencias a largo plazo.

2. Métricas de Prometheus para Kubernetes

Prometheus es el estándar de facto para el monitoreo de métricas de Kubernetes, ya que ofrece:

  • Almacenamiento a largo plazo: Permite el análisis de datos históricos y la identificación de tendencias.
  • PromQL: Un poderoso lenguaje de consulta para extraer información detallada de las métricas.
  • Integración de Grafana: Proporciona visualizaciones y dashboards mejorados.

Pasos para establecer Prometheus para el monitoreo de Kubernetes:

Implemente Prometheus utilizando Helm:

Repositorio de Helm: agregar Prometheus-community https://prometheus-community.github.io/helm-charts Helm: instalar Prometheus prometheus-community/kube-prometheus-stack

Verifique la instalación:

kubectl get pods -n monitoring

Acceda al dashboard de Prometheus:

kubectl port-forward svc/prometheus-server 9090:80 -n monitoring

Métricas clave y consultas PromQL:

ConsultasDescripción
up{job="kubernetes-nodes"}Comprueba la disponibilidad de los nodos.
sum(rate(node_cpu_seconds_total{mode="user"}[5m])) by (node)Calcula el uso de CPU por nodo.
sum(kube_pod_container_status_restarts_total) by (pod, namespace)Controla los recuentos de reinicio de pod.
histogram_quantile(0.95, rate(http_server_requests_seconds[5m]))Mide la latencia de solicitud del percentil 95.

Como alternativa,

Para una experiencia optimizada de monitoreo de Kubernetes, ManageEngine Applications Manager ofrece dashboards preconfigurados y detección de anomalías impulsada por IA, evitando la complejidad de las configuraciones manuales de Prometheus.

Observación de las implementaciones de Kubernetes

Existen dos métodos para observar las implementaciones de Kubernetes. Estos son:

1. Utilizar Kubectl para monitorear las implementaciones/h3>

How to monitor Kubernetes deployments

Puede observar las implementaciones de Kubernetes en tiempo real utilizando::

ComandoDescripción
kubectl get deployments --all-namespacesLista todas las implementaciones.
kubectl describe deployment <deployment-name>Describe una implementación específica.
kubectl rollout status deployment <deployment-name>Monitorea las actualizaciones continuas.
kubectl logs -f <pod-name>Para ver los logs detallados de los pods.

2. Visualización de las implementaciones con Grafana

Al combinar las funciones de visualización de Grafana con la recopilación de métricas de Prometheus, obtendrá una potente información de las implementaciones de Kubernetes. Estos son los pasos para obtener informes visuales de las implementaciones de Kubernetes en Grafana:

  • Instalar Grafana a través de Helm:

    helm install grafana grafana/grafana
  • Acceder al dashboard:

    kubectl port-forward svc/grafana 3000:80
  • Importar dashboards de monitoreo de Kubernetes pre-construidos desde Grafana Labs.

 

Como alternativa,,

ManageEngine Applications Manager se integra directamente con Kubernetes para visualizar las implementaciones y monitorear las anomalías en tiempo real. Mejora el monitoreo de Kubernetes al integrarse de manera eficiente con Prometheus, lo que le permite ingerir las métricas existentes de Prometheus y centralizarlas junto con otros datos de la infraestructura de TI. Esto proporciona dashboards preconstruidos, detección de anomalías impulsada por IA para reducir la fatiga por alertas y funciones de correlación para una resolución de problemas más rápida, al tiempo que ofrece autodescubrimiento de nuevos recursos Kubernetes y mantiene la neutralidad del proveedor, simplificando la observabilidad de Kubernetes sin requerir complejas configuraciones independientes de Prometheus.

Observar los logs de Kubernetes para obtener una información más profunda

Los logs son indispensables para depurar, solucionar problemas y obtener una comprensión más profunda del funcionamiento interno de su aplicación. La observabilidad efectiva de los logs es crucial para identificar los fallos de implementación, localizar los cuellos de botella en el rendimiento y mantener la salud general de su entorno Kubernetes. He aquí 2 métodos para observar los logs:

1. Registro nativo de Kubernetes

La herramienta de línea de comandos de Kubernetes, kubectl, proporciona acceso directo a los logs de pods, ofreciendo una forma rápida y eficiente de inspeccionar el comportamiento de las aplicaciones en tiempo real.

DominioPropósitoCaso de uso
kubectl logs <pod-name>Recupera los logs del contenedor primario dentro del pod especificado. Este comando es ideal para inspeccionar rápidamente la salida de un único proceso de aplicación.Para diagnosticar rápidamente problemas dentro de un pod de un solo contenedor, comprobar los mensajes de inicialización de la aplicación o monitorear la salida de un proceso específico.
kubectl logs <pod-name> --all-containersAgrega y muestra los logs de todos los contenedores del pod especificado. Esto es particularmente útil para depurar pods complejos con múltiples contenedores sidecar o microservicios que interactúan estrechamente.Para solucionar problemas de interacción entre varios contenedores, examine los logs de los contenedores secundarios (por ejemplo, agentes de registro, mallas de servicios) o analice el comportamiento de las aplicaciones multicomponente.

2. Agregación centralizada de logs con Fluentd y Elasticsearch

Para implementar Kubernetes a gran escala, es esencial contar con una solución centralizada de agregación de logs. La pila EFK (Fluentd, Elasticsearch, Kibana) proporciona una plataforma robusta y escalable para la gestión y el análisis de logs.

Observación de trazas de Kubernetes para el monitoreo de microservicios

En las arquitecturas de microservicios, en las que las solicitudes atraviesan múltiples servicios, el seguimiento distribuido es indispensable para comprender el flujo de solicitudes y localizar los cuellos de botella en el rendimiento.

Jaeger para el seguimiento de Kubernetes

Jaeger es una solución líder de seguimiento de código abierto, que le permite visualizar las rutas de las solicitudes e identificar problemas de latencia en sus microservicios.

Pasos para la implementación:

  • Instalar Jaeger a través de Helm:

    helm install jaeger jaegertracing/jaeger
  • Aplicaciones de instrumentos SDK de OpenTelemetry.
  • Acceder a la UI de Jaeger

    kubectl port-forward svc/jaeger-query 16686:80

Como alternativa,

ManageEngine Applications Manager agiliza el seguimiento. Evite la sobrecarga de instalar y configurar Jaeger, y la complejidad de la instrumentación del SDK. Applications Manager ofrece un seguimiento distribuido integrado que simplifica la observabilidad de los microservicios.

En conclusión, la observabilidad efectiva de Kubernetes no es una configuración de una sola vez; es un proceso continuo de monitoreo, análisis y optimización. Si adopta los tres pilares de la observabilidad y aprovecha las herramientas adecuadas, podrá garantizar la salud, el rendimiento y la seguridad de sus implementaciones de Kubernetes.

Automatice la observabilidad de Kubernetes con ManageEngine Applications Manager

Seamos realistas, es engorroso configurar manualmente la observabilidad mediante la implementación de las directrices mencionadas. Para las empresas que buscan una solución de monitoreo de Kubernetes ágil y sin complicaciones que les brinde información proactiva y eficiencia operativa, ManageEngine Applications Manager emerge como una plataforma poderosa e intuitiva. Está diseñado para aliviar la carga de las complejas configuraciones de monitoreo de Kubernetes, ofreciendo un sólido conjunto de funciones que proporcionan valor inmediato y beneficios a largo plazo. Sus principales funciones incluyen:

  • Dashboards de monitoreo de Kubernetes preconfigurados: Elimine el laborioso proceso de crear dashboards personalizados desde cero. Applications Manager proporciona dashboards listos para usar que ofrecen una visibilidad instantánea del estado y el rendimiento de sus clústeres, nodos, pods y contenedores Kubernetes. Estos dashboards están meticulosamente elaborados para mostrar métricas y logs críticos, permitiendo a los equipos identificar rápidamente tendencias, anomalías y problemas potenciales.
  • Alertas en tiempo real sobre el estado del clúster, los nodos y los pods: Anticípese a los posibles problemas con alertas en tiempo real que le notifican los eventos críticos y las desviaciones del rendimiento. El sistema de alerta inteligente de Applications Manager monitorea la salud de su infraestructura Kubernetes, proporcionando notificaciones inmediatas en caso de fallos de nodos, fallos de pods, agotamiento de recursos y otras condiciones críticas. Esto garantiza que los equipos puedan reaccionar rápidamente ante los incidentes y minimizar el tiempo de inactividad.
  • Detección de anomalías impulsada por IA: Vaya más allá de las alertas tradicionales basadas en umbrales con la detección de anomalías impulsada por IA. Los algoritmos de machine learning de Applications Manager analizan los datos históricos e identifican patrones inusuales en sus métricas de Kubernetes. Esto le permite detectar de forma proactiva degradaciones sutiles del rendimiento y problemas potenciales que, de otro modo, podrían pasar desapercibidos. También reduce la fatiga por alerta al reducir los falsos positivos.
  • Visibilidad multiclúster: Obtenga una visión unificada de sus implementaciones de Kubernetes en varios clústeres y proveedores de nube. ManageEngine Applications Manager proporciona visibilidad centralizada, permitiéndole monitorear y gestionar todo su entorno Kubernetes desde una única consola. Esto simplifica la gestión multiclúster y garantiza unas prácticas de monitoreo consistentes en todos los entornos.
  • Fácil integración con Prometheus: Se integra de manera eficiente con sus herramientas de observabilidad y flujos de trabajo existentes. ManageEngine Applications Manager ofrece integración out-of-the-box con herramientas populares como Prometheus para aprovechar sus inversiones existentes y crear un entorno de observabilidad cohesivo. Este enfoque neutral con respecto al proveedor es fundamental.

Con la estrategia de observabilidad adecuada, las organizaciones pueden detectar problemas de forma proactiva, optimizar la utilización de los recursos y mantener la resiliencia de su infraestructura Kubernetes.

¿Por qué elegir Applications Manager?

Gracias a su interfaz intuitiva, sus sólidas funciones de alerta y sus flexibles opciones de implementación, Applications Manager permite a las organizaciones reducir el tiempo de inactividad, mejorar la eficiencia operativa y ofrecer experiencias de usuario superiores. Tanto si gestiona entornos on-premises, en la nube o híbridos, Applications Manager simplifica la complejidad del monitoreo de TI.

Eleve su juego de monitoreo de Kubernetes con Applications Manager. Descargue ahora y experimente la diferencia, o programe una demostración personalizada para una visita guiada.

 

Angeline, analista de marketing

Angeline forma parte del equipo de marketing de ManageEngine. Le encanta explorar el espacio tecnológico, especialmente la observabilidad, DevOps y AIOps. Con su habilidad para simplificar temas complejos, ayuda a los lectores a navegar por el cambiante panorama tecnológico.

Amado por clientes de todo el mundo

"Herramienta destacada con amplias capacidades de monitoreo"

Nos permite realizar un seguimiento de métricas cruciales como los tiempos de respuesta, la utilización de recursos, las tasas de error y el rendimiento de las transacciones. Las alertas de monitoreo en tiempo real nos notifican rápidamente sobre cualquier problema o anomalía, lo que nos permite tomar medidas inmediatas.

Industria: Investigación y desarrollo

"La recomiendo muy seguido por lo simple que es la herramienta al usarse, por el soporte que dan y tiene un buen precio."
Alejandro Aguirre

Jefe de aplicaciones, Axtel

Confiado por más de 6000 empresas globales