Procedimientos recomendados para supervisar Kubernetes con Azure Monitor

En este artículo se proporcionan procedimientos recomendados para supervisar el estado y el rendimiento de los clústeres de Azure Kubernetes Service (AKS) y de Kubernetes habilitados para Azure Arc. La guía se basa en los cinco pilares de excelencia de la arquitectura descritos en el Marco de buena arquitectura de Azure.

Confiabilidad

En la nube, reconocemos que se producen errores. En lugar de intentar evitar todos los errores, el objetivo es minimizar los efectos que pueden provocar los errores de un único componente. Use la siguiente información para aprovechar mejor Azure Monitor a fin de garantizar la confiabilidad de los clústeres de Kubernetes y el entorno de supervisión.

Diseño de una lista de comprobación

  • Habilite la extracción de métricas de Prometheus para el clúster.
  • Habilite Container Insights para la recopilación de registros y datos de rendimiento del clúster.
  • Cree una configuración de diagnóstico para recopilar registros del plano de control para clústeres de AKS.
  • Habilite las alertas de Prometheus recomendadas.
  • Garantice la disponibilidad del área de trabajo de Log Analytics que admite Container Insights.

Recomendaciones para la configuración

Recomendación Prestación
Habilite la extracción de métricas de Prometheus para el clúster. Habilite Prometheus en el clúster con el servicio administrado de Azure Monitor para Prometheus si aún no tiene un entorno de Prometheus. Use Azure Managed Grafana para analizar los datos de Prometheus recopilados. Consulte Personalización de la extracción de métricas de Prometheus en el servicio administrado de Azure Monitor para Prometheus para recopilar métricas adicionales más allá de la configuración predeterminada.
Habilite Container Insights para la recopilación de registros y datos de rendimiento del clúster. Container Insights recopila registros stdout/stderr, métricas de rendimiento y eventos de Kubernetes de cada nodo del clúster. Proporciona paneles e informes para analizar estos datos, incluida la disponibilidad de los nodos y otros componentes. Use Log Analytics para identificar los errores de disponibilidad en los registros recopilados.
Cree una configuración de diagnóstico para recopilar registros del plano de control para clústeres de AKS. AKS implementa registros del plano de control como registros de recursos en Azure Monitor. Cree una configuración de diagnóstico para enviar estos registros al área de trabajo de Log Analytics de modo que pueda usar consultas de registro para identificar aquellos errores y problemas que afecten a la disponibilidad.
Habilite las alertas de Prometheus recomendadas. Las alertas de Azure Monitor le informan de forma proactiva cuando se detectan problemas. Comience con un conjunto de reglas de alerta de Prometheus recomendadas que detecten los problemas de rendimiento y disponibilidad más comunes con el clúster. Puede agregar alertas de búsqueda de registros mediante los datos recopilados por Container Insights.
Garantice la disponibilidad del área de trabajo de Log Analytics que admite Container Insights. Container Insights se basa en un área de trabajo de Log Analytics. Consulte Procedimientos recomendados para registros de Azure Monitor para ver las recomendaciones para garantizar la confiabilidad del área de trabajo.

Seguridad

La seguridad es uno de los aspectos más importantes de cualquier arquitectura. Azure Monitor proporciona características para emplear el principio de privilegios mínimos y la defensa en profundidad. Use la siguiente información para supervisar los clústeres de Kubernetes y asegurarse de que solo los usuarios autorizados accedan a los datos recopilados.

Diseño de una lista de comprobación

  • Use la autenticación de identidad administrada para que el clúster se conecte a Container Insights.
  • Considere la posibilidad de usar Azure Private Link para que el clúster se conecte al área de trabajo de Azure Monitor mediante un punto de conexión privado.
  • Use análisis de tráfico para supervisar el tráfico de red hacia y desde el clúster.
  • Habilite la observabilidad de red.
  • Garantice la seguridad del área de trabajo de Log Analytics que admite Container Insights.

Recomendaciones para la configuración

Recomendación Prestación
Use la autenticación de identidad administrada para que el clúster se conecte a Container Insights. La autenticación de identidad administrada es el valor predeterminado para los nuevos clústeres. Si usa la autenticación heredada, debe migrar a la identidad administrada para quitar la autenticación local basada en certificados.
Considere la posibilidad de usar Azure Private Link para que el clúster se conecte al área de trabajo de Azure Monitor mediante un punto de conexión privado. El servicio administrado de Azure para Prometheus almacena sus datos en un área de trabajo de Azure Monitor que usa un punto de conexión público de forma predeterminada. Las conexiones a puntos de conexión públicos se protegen con cifrado de un extremo a otro. Si necesita un punto de conexión privado, puede usar Azure Private Link para permitir que el clúster se conecte al área de trabajo a través de redes privadas autorizadas. Private Link también se puede usar para forzar la ingesta de datos del área de trabajo a través de ExpressRoute o una VPN.

Consulte Private Link para la ingesta de datos para Prometheus administrado y un área de trabajo de Azure Monitor para obtener más información sobre la configuración del clúster para Private Link. Consulte Uso de puntos de conexión privados para Prometheus administrado y el área de trabajo de Azure Monitor para obtener más información sobre la consulta de los datos mediante Private Link.
Use análisis de tráfico para supervisar el tráfico de red hacia y desde el clúster. El análisis de tráfico analiza los registros de flujo de grupo de seguridad de red de Azure Network Watcher para proporcionar información sobre el flujo de tráfico en la nube de Azure. Use esta herramienta para garantizar que no se filtren datos para el clúster y detectar si se expone alguna dirección IP pública innecesaria.
Habilite la observabilidad de red. El complemento Observabilidad de red para AKS proporciona observabilidad en las distintas capas de la pila de red de Kubernetes. Supervise y observe el acceso entre los servicios del clúster (tráfico este-oeste).
Garantice la seguridad del área de trabajo de Log Analytics que admite Container Insights. Container Insights se basa en un área de trabajo de Log Analytics. Consulte Procedimientos recomendados para registros de Azure Monitor para ver las recomendaciones para garantizar la seguridad del área de trabajo.

Optimización de costos

La optimización de costos se refiere a las formas de reducir los gastos innecesarios y mejorar la eficiencia operativa. Puede reducir considerablemente el costo de Azure Monitor conociendo sus diferentes opciones de configuración y las oportunidades de reducir la cantidad de datos que recopila. Consulte Costo y uso de Azure Monitor para comprender las distintas formas de cobro de Azure Monitor y cómo ver la factura mensual.

Nota:

Consulte Optimización de costos en Azure Monitor para obtener recomendaciones de optimización de costos en todas las características de Azure Monitor.

Diseño de una lista de comprobación

  • No habilite la recopilación de métricas de Prometheus de Container Insights.
  • Configure la recopilación de agentes para modificar la recopilación de datos en Container Insights.
  • Modifique la configuración para la recopilación de datos de métricas de Container Insights.
  • Deshabilite la recopilación de datos de métricas de Container Insights si no usa la experiencia de Container Insights en Azure Portal.
  • Si no consulta regularmente la tabla de registros de contenedor o la usa para las alertas, configúrela como registros básicos.
  • Limite la recopilación de registros de recursos que no necesita.
  • Use el registro específico del recurso para los registros de recursos de AKS y configure tablas como registros básicos.
  • Use OpenCost para recopilar detalles sobre los costos de Kubernetes.

Recomendaciones para la configuración

Recomendación Prestación
No habilite la recopilación de métricas de Prometheus de Container Insights en el área de trabajo de Log Analytics si ha habilitado la extracción de métricas con Prometheus. Además de extraer métricas de Prometheus del clúster mediante el servicio administrado de Azure Monitor para Prometheus, puede configurar Container Insights para recopilar métricas de Prometheus en el área de trabajo de Log Analytics. Esto es redundante con los datos de Prometheus administrado y conllevará un costo adicional.
Configure el agente para modificar la recopilación de datos en Container Insights. Analice los datos recopilados por Container Insights como se describe en Control de la ingesta para reducir el costo y ajuste la configuración para detener la recopilación de datos que no necesite.
Modifique la configuración para la recopilación de datos de métricas de Container Insights. Consulte Habilitación de la configuración de optimización de costos para obtener más información sobre cómo modificar la frecuencia con la que se recopilan los datos de métricas y los espacios de nombres que recopila Container Insights.
Deshabilite la recopilación de datos de métricas de Container Insights si no usa la experiencia de Container Insights en Azure Portal. Container Insights recopila muchos de los mismos valores de métrica que Prometheus administrado. Puede deshabilitar la recopilación de estas métricas mediante la configuración de Container Insights para recopilar solo Registros y eventos, como se describe en Habilitación de la configuración de optimización de costos en Container Insights. Esta configuración deshabilita la experiencia de Container Insights en Azure Portal, pero puede usar Grafana para visualizar las métricas de Prometheus y Log Analytics para analizar los datos de registro recopilados por Container Insights.
Si no consulta regularmente la tabla de registros de contenedor o la usa para las alertas, configúrela como registros básicos. Convierta el esquema de Container Insights a ContainerLogV2, que es compatible con los registros básicos y puede proporcionar un ahorro de costos significativo, tal como se describe en Control de la ingesta para reducir el costo.
Limite la recopilación de registros de recursos que no necesita. Los registros del plano de control de los clústeres de AKS se implementan como registros de recursos en Azure Monitor. Cree una configuración de diagnóstico para enviar estos datos a un área de trabajo de Log Analytics. Consulte Recopilación de registros del plano de control para clústeres de AKS para obtener recomendaciones sobre qué categorías debe recopilar.
Use el registro específico del recurso para los registros de recursos de AKS y configure tablas como registros básicos. AKS admite el modo de diagnóstico de Azure o el modo específico del recurso para los registros de recursos. Especifique los registros de recursos para habilitar la opción de configuración de las tablas para registros básicos, que proporcionan un cargo por ingesta reducido por los registros que solo consulta ocasionalmente y no usa para las alertas.
Use OpenCost para recopilar detalles sobre los costos de Kubernetes. OpenCost es un proyecto de espacio aislado CNCF independiente del proveedor y de código abierto para comprender los costos de Kubernetes y respaldar su capacidad de visibilidad de los costos de AKS. Exporta datos detallados de costos y precios de Azure específicos del cliente a Azure Storage para ayudar al administrador de clústeres a analizar y categorizar los costos.

Excelencia operativa

La excelencia operativa hace referencia a los procesos de operaciones necesarios para que un servicio se ejecute de forma confiable en producción. Use la siguiente información para minimizar los requisitos operativos para la supervisión de los clústeres de Kubernetes.

Diseño de una lista de comprobación

  • Revise las instrucciones para supervisar todas las capas del entorno de Kubernetes.
  • Use Kubernetes habilitado para Azure Arc para supervisar los clústeres fuera de Azure.
  • Use servicios administrados de Azure para herramientas nativas en la nube.
  • Integre los clústeres de AKS en las herramientas de supervisión existentes.
  • Use Azure Policy para habilitar la recopilación de datos del clúster de Kubernetes.

Recomendaciones para la configuración

Recomendación Prestación
Revise las instrucciones para supervisar todas las capas del entorno de Kubernetes. Supervisión del rendimiento del clúster de Kubernetes con Container Insights incluye instrucciones y procedimientos recomendados para supervisar todo el entorno de Kubernetes desde las capas de red, clúster y aplicación.
Use Kubernetes habilitado para Azure Arc para supervisar los clústeres fuera de Azure. Kubernetes habilitado para Azure Arc permite supervisar los clústeres de Kubernetes que se ejecutan en otras nubes con las mismas herramientas que los clústeres de AKS, incluidos Container Insights y el servicio administrado de Azure Monitor para Prometheus.
Use servicios administrados de Azure para herramientas nativas en la nube. El servicio administrado de Azure Monitor para Prometheus y Azure Managed Grafana admite todas las características de las herramientas nativas en la nube Prometheus y Grafana sin tener que operar su infraestructura subyacente. Puede aprovisionar rápidamente estas herramientas e incorporar los clústeres de Kubernetes con una sobrecarga mínima. Estos servicios permiten acceder a una amplia biblioteca de reglas y paneles de la comunidad para supervisar el entorno de Kubernetes.
Integre los clústeres de AKS en las herramientas de supervisión existentes. Si tiene una inversión existente en Prometheus y Grafana, integre los clústeres de AKS y los servicios administrados de Azure en el entorno existente con las instrucciones de Supervisión de clústeres de Kubernetes mediante servicios de Azure y herramientas nativas en la nube.
Use Azure Policy para habilitar la recopilación de datos del clúster de Kubernetes. Use Azure Policy para habilitar la recopilación de datos a fin de habilitar métricas de Prometheus, Container Insights y una configuración de diagnóstico. Esto garantiza que los clústeres nuevos se supervisen automáticamente y aplica su configuración de supervisión.

Eficiencia del rendimiento

La eficiencia del rendimiento es la capacidad de la carga de trabajo para escalar con el fin de satisfacer de manera eficiente las demandas que los usuarios hayan ejercido sobre ella. Use la siguiente información para supervisar el rendimiento de los clústeres de Kubernetes y asegurarse de que están configurados para obtener el máximo rendimiento.

Diseño de una lista de comprobación

  • Habilite la recopilación de métricas de Prometheus para el clúster.
  • Habilite Container Insights para realizar un seguimiento del rendimiento del clúster.
  • Habilite las alertas de Prometheus recomendadas.

Recomendaciones para la configuración

Recomendación Prestación
Habilite la recopilación de métricas de Prometheus para el clúster. Prometheus es una solución de métricas nativas de la nube de Cloud Native Compute Foundation y es la herramienta más común que se usa para recopilar y analizar datos de métricas de clústeres de Kubernetes. Habilite Prometheus en el clúster con el servicio administrado de Azure Monitor para Prometheus si aún no tiene un entorno de Prometheus. Use Azure Managed Grafana para analizar los datos de Prometheus recopilados.

Consulte Personalización de la extracción de métricas de Prometheus en el servicio administrado de Azure Monitor para Prometheus para recopilar métricas adicionales más allá de la configuración predeterminada.
Habilite Container Insights para realizar un seguimiento del rendimiento del clúster. Al habilitar Container Insights para el clúster de Kubernetes, puede usar vistas y libros para realizar un seguimiento del rendimiento de los componentes del clúster. Estos datos se pueden superponer con los datos recopilados por Prometheus. Consulte Optimización de costos para obtener recomendaciones sobre el costo.
Habilite las alertas de Prometheus recomendadas. Las alertas de Azure Monitor le informan de forma proactiva cuando se detectan problemas. Comience con un conjunto de reglas de alerta de Prometheus recomendadas que detecten los problemas de rendimiento y disponibilidad más comunes con el clúster. Puede agregar alertas de búsqueda de registros mediante los datos recopilados por Container Insights.

Paso siguiente