Supervisión de Azure Kubernetes Service (AKS)

Si tiene aplicaciones y procesos empresariales críticos que dependen de recursos de Azure, querrá supervisar esos recursos para su disponibilidad, rendimiento y funcionamiento. En este artículo se describen los datos de supervisión que genera AKS y se analizan con Azure Monitor. Si no está familiarizado con las características de Azure Monitor comunes a todos los servicios de Azure que lo usan, consulte Supervisión de recursos de Azure con Azure Monitor.

Importante

Kubernetes es un sistema distribuido complejo con muchas partes móviles, por lo que se requiere la supervisión en varios niveles. Aunque AKS es un servicio de Kubernetes administrado, todavía se requiere el mismo rigor en torno a la supervisión en varios niveles. En este artículo se proporciona información general y procedimientos recomendados para supervisar un clúster de AKS. Para obtener más información, consulte lo siguiente.

Supervisión de datos

AKS genera los mismos tipos de datos de supervisión que otros recursos de Azure que se describen en Supervisión de datos de recursos de Azure. Consulte Referencia de supervisión de datos de ASK para obtener información detallada sobre las métricas y los registros creados por AKS. Otros servicios y características de Azure recopilan otros datos y habilitan otras opciones de análisis, como se muestra en el diagrama y la tabla siguientes.

Diagram of collection of monitoring data from AKS.

Source Descripción
Métricas de la plataforma Las métricas de plataforma se recopilan automáticamente para los clústeres de AKS sin costo alguno. Puede analizar estas métricas con el explorador de métricas o usarlas para las alertas de métricas.
Métricas de Prometheus Cuando habilita la extracción de métricas para su clúster, las métricas de Prometheus son recopiladas por el servicio administrado para Prometheus de Azure Monitor y almacenadas en un área de trabajo de Azure Monitor. Analícelos con paneles predefinidos en Azure Managed Grafana y con las alertas de Prometheus.
Registros de actividad El registro de actividad se recopila automáticamente para los clústeres de AKS sin costo alguno. Estos registros realizan un seguimiento de la información, como cuando se crea un clúster o si quiere hacer un cambio de configuración. Envíe el registro de actividad al área de trabajo de Log Analytics para analizarlo con otros datos de registro.
Registros del recurso Los registros del plano de control para AKS se implementan como registros de recursos. Cree una configuración de diagnóstico para enviarlos al área de trabajo de Log Analytics, donde puede analizarlos y enviar alertas con consultas de registro en Log Analytics.
Container Insights Container Insights recopila varios registros y datos de rendimiento de un clúster, incluidos flujos de tipo stdout/stderr, y los almacena en un área de trabajo de Log Analytics y en las métricas de Azure Monitor. Analice estos datos con vistas y libros incluidos con Container Insights o con Log Analytics y el Explorador de métricas.

Página de información general de supervisión en Azure Portal

La pestaña Supervisión de la página Información general ofrece una manera rápida de empezar a ver los datos de supervisión en Azure Portal, para cada clúster de AKS. Esto incluye gráficos con métricas comunes para el clúster que están separados por el grupo de nodos. Haga clic en cualquiera de estos gráficos para analizar con más detalle los datos en el Explorador de métricas.

La página Información general también incluye vínculos a Managed Prometheus y Container Insights para el clúster actual. Si aún no ha habilitado estas herramientas, se le pedirá que lo haga. También puede ver un banner en la parte superior de la pantalla que recomienda habilitar otras características para mejorar la supervisión del clúster.

Screenshot of AKS overview page.

Sugerencia

Puede acceder a las características de supervisión de todos los clústeres de AKS de su suscripción desde el menú Supervisión de Azure Portal o, para un solo clúster de AKS, desde la sección Supervisión del menú Servicios de Kubernetes.

Integraciones

Los siguientes servicios y características de Azure Monitor se pueden usar para la supervisión adicional de los clústeres de Kubernetes. Puede habilitar estas características durante la creación de clústeres de AKS desde la pestaña Integraciones de Azure Portal, la CLI de Azure, Terraform, Azure Policy o la incorporación del clúster más adelante. Cada una de estas características puede tener un coste, así que consulte la información sobre precios de cada una de ellas antes de habilitarlas.

Servicio o característica Descripción
Container Insights Usa una versión en contenedor del agente de Azure Monitor para recopilar registros stdout/stderr y eventos de Kubernetes de cada nodo del clúster, lo que admite una variedad de escenarios de supervisión para clústeres de AKS. Puede habilitar la supervisión de un clúster de AKS cuando se crea mediante CLI de Azure, Azure Policy, Azure Portal o Terraform. Si no habilita Container Insights al crear el clúster, consulte Habilitación del clúster de Container Insights para Azure Kubernetes Service (AKS) para ver otras opciones para habilitarlo.

Container Insights almacena la mayoría de sus datos en un área de trabajo de Log Analytics , y normalmente usará el mismo área de trabajo de Log Analytics que los registros de recursos de para el clúster. Consulte Diseño de una arquitectura de área de trabajo de Log Analytics para obtener instrucciones sobre cuántas áreas de trabajo debe usar y dónde buscarlas.
Servicio administrado Azure Monitor para Prometheus 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. El servicio administrado para Prometheus de Azure Monitor es una solución de supervisión totalmente compatible con Prometheus en Azure. Si no habilita Prometheus administrado al crear el clúster, consulte Recopilación de métricas de Prometheus desde un clúster de AKS para ver otras opciones para habilitarlo.

El servicio administrado para Prometheus de Azure Monitor almacena sus datos en un área de trabajo de Azure Monitor, que está vinculada a un área de trabajo de Grafana, para que pueda analizar los datos con Azure Managed Grafana.
Azure Managed Grafana La implementación totalmente administrada de Grafana es una plataforma de visualización de datos de código abierto que se usa habitualmente para presentar datos de Prometheus. Hay varios paneles predefinidos de Grafana disponibles para supervisar Kubernetes y una solución de problemas de pila completa. Si no habilita Grafana administrado al crear el clúster, consulte los detalles de Vinculación del área de trabajo de Grafana para ver cómo vincularlo al área de trabajo de Azure Monitor para que pueda acceder a las métricas de Prometheus para el clúster.

Métricas

Las métricas desempeñan un papel importante en la supervisión de clústeres, la identificación de problemas y la optimización del rendimiento en los clústeres de AKS. Las métricas de la plataforma se capturan con el servidor de métricas estándar instalado en el espacio de nombres kube-system, que extrae periódicamente las métricas de todos los nodos de Kubernetes servidos por Kubelet. También debe habilitar las métricas de Azure Managed Prometheus para recopilar métricas de contenedor y métricas de objetos de Kubernetes, como el estado de objeto de las implementaciones. Consulte Recopilar métricas de Prometheus de un clúster de AKS para enviar datos al servicio administrado de Azure para Prometheus.

Screenshot of enabling Managed Prometheus for existing cluster.

Registros

Registros de recursos o plano de control de AKS

Los registros del plano de control de los clústeres de AKS se implementan como registros de recursos en Azure Monitor. Los registros de recursos no se recopilan ni almacenan hasta que se crea una configuración de diagnóstico para enrutarlas a una o varias ubicaciones. Normalmente, los enviará a un área de trabajo de Log Analytics, que es donde se almacenan la mayoría de los datos de Container Insights.

Consulte Creación de una configuración de diagnóstico para ver el proceso detallado que le permitirá crear una configuración de diagnóstico mediante Azure Portal, la CLI o PowerShell. Cuando se crea una configuración de diagnóstico, se especifican las categorías de registros que se van a recopilar. Las categorías de AKS se enumeran en la referencia de datos de supervisión de AKS.

Importante

Puede haber un costo considerable al recopilar registros de recursos para AKS, especialmente para los registros de kube-audit. Tenga en cuenta las recomendaciones siguientes para reducir la cantidad de datos recopilados:

  • Deshabilite el registro de kube-audit cuando no sea necesario.
  • Habilite la recopilación desde kube-audit-admin, lo que excluye los eventos de auditoría get y list.
  • Habilite los registros específicos de recursos como se describe a continuación y configure la tabla AKSAudit como registros básicos.

Vea Supervisión de clústeres de Kubernetes mediante servicios de Azure y herramientas nativas de nube para obtener más recomendaciones y Optimización de costos y Azure Monitor para obtener más estrategias a fin de reducir los costos de supervisión.

Screenshot of AKS diagnostic setting dialog box.

AKS admite el modo de diagnóstico de Azure o el modo específico del recurso para los registros de recursos. Esto especifica las tablas del área de trabajo de Log Analytics donde se envían los datos. El modo de diagnóstico de Azure envía todos los datos a la tabla AzureDiagnostics, mientras que el modo específico del recurso envía datos a Auditoría de AKS, Administración de auditoría de AKS y Plano de control de AKS, como se muestra en la tabla en Registros de recursos.

Se recomienda el modo específico del recurso para AKS por los siguientes motivos:

  • Los datos son más fáciles de consultar porque están en tablas individuales dedicadas a AKS.
  • Admite la configuración como registros básicos para ahorrar costos considerables.

Para obtener más información sobre la diferencia entre los modos de recopilación, incluido cómo cambiar una configuración existente, vea Seleccionar el modo de recopilación.

Nota:

La capacidad de seleccionar el modo de recopilación aún no está disponible en Azure Portal en todas las regiones. Para aquellas regiones en las que aún no está disponible, use la CLI para crear la configuración de diagnóstico con un comando como el siguiente:

az monitor diagnostic-settings create --name AKS-Diagnostics --resource /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.ContainerService/managedClusters/my-cluster --logs '[{""category"": ""kube-audit"",""enabled"": true}, {""category"": ""kube-audit-admin"", ""enabled"": true}, {""category"": ""kube-apiserver"", ""enabled"": true}, {""category"": ""kube-controller-manager"", ""enabled"": true}, {""category"": ""kube-scheduler"", ""enabled"": true}, {""category"": ""cluster-autoscaler"", ""enabled"": true}, {""category"": ""cloud-controller-manager"", ""enabled"": true}, {""category"": ""guard"", ""enabled"": true}, {""category"": ""csi-azuredisk-controller"", ""enabled"": true}, {""category"": ""csi-azurefile-controller"", ""enabled"": true}, {""category"": ""csi-snapshot-controller"", ""enabled"": true}]'  --workspace /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myresourcegroup/providers/microsoft.operationalinsights/workspaces/myworkspace --export-to-resource-specific true

Consultas de registros de ejemplo

Importante

Al seleccionar Registros en el menú de un clúster de AKS, Log Analytics se abre con el ámbito de la consulta establecido en el clúster actual. Esto significa que las consultas de registro solo incluirán datos de ese recurso. Si quiere ejecutar una consulta que incluya datos de otros clústeres o de otros servicios de Azure, seleccione Registros en el menú Azure Monitor. Consulte Ámbito e intervalo de tiempo de una consulta de registro en Log Analytics de Azure Monitor para obtener más información.

Si en la configuración de diagnóstico del clúster se usa el modo de diagnóstico de Azure, los registros de recursos de AKS se almacenan en la tabla AzureDiagnostics. Puede distinguir registros distintos con la columna Categoría. Para obtener una descripción de cada categoría, consulte Registros de recursos de referencia de AKS.

Descripción Consulta de registro
Recuento de registros para cada categoría
(Modo de diagnóstico de Azure)
AzureDiagnostics
| where ResourceType == "MANAGEDCLUSTERS"
| summarize count() by Category
Todos los registros del servidor de API
(Modo de diagnóstico de Azure)
AzureDiagnostics
| where Category == "kube-apiserver"
Todos los registros de kube-audit en un intervalo de tiempo
(Modo de diagnóstico de Azure)
let starttime = datetime("2023-02-23");
let endtime = datetime("2023-02-24");
AzureDiagnostics
| where TimeGenerated between(starttime..endtime)
| where Category == "kube-audit"
| extend event = parse_json(log_s)
| extend HttpMethod = tostring(event.verb)
| extend User = tostring(event.user.username)
| extend Apiserver = pod_s
| extend SourceIP = tostring(event.sourceIPs[0])
| project TimeGenerated, Category, HttpMethod, User, Apiserver, SourceIP, OperationName, event
Todos los registros de auditoría
(modo específico del recurso)
AKSAudit
Todos los registros de auditoría sin incluir los eventos de auditoría get y list
(modo específico del recurso)
AKSAuditAdmin
Todos los registros del servidor de API
(modo específico del recurso)
AKSControlPlane
| where Category == "kube-apiserver"

Para acceder a un conjunto de consultas precompiladas en el área de trabajo de Log Analytics, consulte la interfaz de consultas de Log Analytics y seleccione el tipo de recurso en Kubernetes Services. Para obtener una lista de consultas comunes para Container Insights, consulte Consultas de Container Insights.

Registros del plano de datos o Container Insights de AKS

Container Insights recopila varios tipos de datos de telemetría de contenedores y clústeres de Kubernetes para ayudarle a supervisar, solucionar problemas y obtener información sobre las aplicaciones en contenedores que se ejecutan en los clústeres de AKS. Para obtener una lista de tablas y sus descripciones detalladas que usa Container Insights, consulte la referencia de tabla de Azure Monitor. Todas estas tablas están disponibles para las consultas de registro.

la configuración de optimización de costos permite personalizar y controlar los datos de métricas recopilados a través del agente de container insights. Esta característica admite la configuración de recopilación de datos para la selección de tablas individuales, los intervalos de recopilación de datos y los espacios de nombres para excluir la recopilación de datos a través de lasReglas de recopilación de datos (DCR) de Azure Monitor. Estos valores controlan el volumen de ingesta y reducen los costos de supervisión de Container Insights. Los datos recopilados de información de contenedores se pueden personalizar en Azure Portal mediante las siguientes opciones. La selección de cualquier opción que no sea Todo (valor predeterminado) hace que no esté disponible la experiencia de información de contenedores.

Agrupar Tablas Notas
Todo (predeterminado) Todas las tablas estándar de información de contenedores Necesario para habilitar las visualizaciones predeterminadas de información de contenedores
Rendimiento Rendimiento, InsightsMetrics
Registros y eventos ContainerLog o ContainerLogV2, KubeEvents, KubePodInventory Se recomienda si ha habilitado las métricas administradas de Prometheus
Cargas de trabajo, implementaciones y HPA InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices
Volúmenes persistentes InsightsMetrics, KubePVInventory

Screenshot of AKS data plane logs collection configuration page.

Los eventos y registros de agrupación capturan los registros de ContainerLog o ContainerLogV2, KubeEvents, tablas de KubePodInventory, pero no las métricas. La ruta de acceso recomendada para recopilar métricas es habilitar el servicio administrado de Azure Monitor Prometheus para Prometheus desde el clúster de AKS y usar Azure Managed Grafana para la visualización de datos. Para más información, consulte Administración de un área de trabajo de Azure Monitor.

Esquema ContainerLogV2

Azure Monitor Container Insights proporciona un esquema para los registros de contenedor conocidos como ContainerLogV2, que es la opción recomendada. Este formato incluye los siguientes campos para facilitar consultas comunes para ver datos relacionados con clústeres de Kubernetes habilitados para AKS y Azure Arc:

  • ContainerName
  • PodName
  • PodNamespace

Además, este esquema es compatible con el plan de datos de registros básicos, que ofrece una alternativa de bajo costo a los registros de análisis estándar. El plan de datos de registro Básico le permite ahorrar en la ingesta y el almacenamiento de registros detallados de gran volumen en el área de trabajo de Log Analytics para depurar, solucionar problemas y auditar, pero no para realizar análisis y generar alertas. Para obtener más información, consulte Administración de tablas en un área de trabajo de Log Analytics. ContainerLogV2 es el enfoque recomendado y es el esquema predeterminado para los clientes que incorporan información de contenedor con la autenticación de identidad administrada mediante ARM, Bicep, Terraform, Policy y Azure Portal. Para obtener más información sobre cómo habilitar ContainerLogV2 a través de la regla de recopilación de datos (DCR) del clúster o ConfigMap, consulte Habilitar el esquema ContainerLogV2.

Visualización

La visualización de datos es un concepto esencial que facilita a los administradores del sistema e ingenieros operativos consumir la información recopilada. En lugar de examinar los datos sin procesar, pueden usar representaciones visuales, que muestran rápidamente los datos y revelan tendencias que podrían ocultarse al examinar los datos sin procesar. Puede usar paneles de Grafana o libros nativos de Azure para la visualización de datos.

Azure Managed Grafana

La forma más común de analizar y presentar datos de Prometheus es con un panel de Grafana. Azure Managed Grafana incluye paneles creados previamente para supervisar clústeres de Kubernetes, incluidos varios que presentan información similar a las vistas de Container Insights. También hay varios paneles creados por la comunidad para visualizar varios aspectos de un clúster de Kubernetes a partir de las métricas recopiladas por Prometheus.

Screenshot of Grafana.

Libros

Libros de Azure Monitor es una característica de Azure Monitor que proporciona un lienzo flexible para el análisis de datos y la creación de informes visuales enriquecidos. Los libros le ayudan a crear informes visuales que ayudan en el análisis de datos. Los informes de Container Insights son libros de Azure recomendados listos para usar. Azure proporciona libros integrados para cada servicio, incluido Azure Kubernetes Service (AKS), al que puede acceder desde Azure Portal. En el menú Azure Monitor de Azure Portal, seleccione Contenedores. En la sección Supervisión, seleccione Información, elija un clúster determinado y, a continuación, seleccione la pestaña Informes. También puede verlos desde la galería de libros en Azure Monitor.

Por ejemplo, el Libro de optimización de clústeres proporciona varios analizadores que le proporcionan una vista rápida del estado y el rendimiento del clúster de Kubernetes. Tiene varios analizadores que proporcionan información diferente relacionada con el clúster. El libro no requiere ninguna configuración una vez que Container Insights esté habilitado en el clúster. Entre las funcionalidades destacadas se incluyen la capacidad de detectar errores de sondeo de ejecución y sus frecuencias, identificar y agrupar anomalías de eventos que indican aumentos recientes en el volumen de eventos para un análisis más accesible e identificar contenedores con límites y solicitudes de CPU y memoria altos o bajos, junto con los valores de límite y solicitud sugeridos para estos contenedores que se ejecutan en los clústeres de AKS. Para obtener más información sobre estos libros, consulte Informes en Container Insights.

Alertas

Las alertas de Azure Monitor le ayudan a detectar y solucionar problemas antes de que los usuarios los notifiquen proactivamente cuando los datos recopilados de Azure Monitor indican que puede haber un problema con la infraestructura o la aplicación en la nube. Permiten identificar y solucionar las incidencias en el sistema antes de que los clientes puedan verlos. Puede establecer alertas en métricas, registros y el registro de actividad. Cada tipo de alerta tiene sus ventajas y desventajas.

Container Insights usa dos tipos de reglas de métricas basadas en métricas de Prometheus o métricas de plataforma.

Alertas basadas en métricas de Prometheus

Al habilitar la recopilación de métricas de Prometheus para el clúster, puede descargar una colección de reglas de alertas de Prometheus recomendadas. Esto incluye las siguientes tareas:

Nivel Alertas
Nivel del pod KubePodCrashLooping
El trabajo no se ha completado a tiempo
El contenedor de pods se reinició en la última hora
El estado Listo de los pods es inferior al 80 %
El número de pods con estado de error es mayor que 0
KubePodNotReadyByController
KubeStatefulSetGenerationMismatch
KubeJobNotCompleted
KubeJobFailed
El uso medio de la CPU por contenedor es superior al 95 %
El uso medio de la memoria por contenedor es superior al 95 %
KubeletPodStartUpLatencyHigh
Nivel de clúster El uso medio de PV es superior al 80 %
KubeDeploymentReplicasMismatch
KubeStatefulSetReplicasMismatch
KubeHpaReplicasMismatch
KubeHpaMaxedOut
KubeCPUQuotaOvercommit
KubeMemoryQuotaOvercommit
KubeVersionMismatch
KubeClientErrors
CPUThrottlingHigh
KubePersistentVolumeFillingUp
KubePersistentVolumeInodesFillingUp
KubePersistentVolumeErrors
Nivel del nodo El uso medio de CPU de nodo es superior al 80 %
La memoria del espacio de trabajo de un nodo es superior al 80 %
El número de contenedores eliminados con memoria insuficiente es mayor que 0
KubeNodeUnreachable
KubeNodeNotReady
KubeNodeReadinessFlapping
KubeContainerWaiting
KubeDaemonSetNotScheduled
KubeDaemonSetMisScheduled
KubeletPlegDurationHigh
KubeletServerCertificateExpiration
KubeletClientCertificateRenewalErrors
KubeletServerCertificateRenewalErrors
KubeQuotaAlmostFull
KubeQuotaFullyUsed
KubeQuotaExceed

Alertas basadas en métricas de plataforma

En la tabla siguiente se enumeran las reglas de alertas de métricas recomendadas para los clústeres de AKS. Estas alertas se basan en métricas de plataforma para el clúster.

Condición Descripción
Porcentaje de uso de CPU > 95 Se desencadena cuando el uso medio de CPU en todos los nodos supera el umbral.
Porcentaje de memoria de conjunto de trabajo > 100 Se desencadena cuando el conjunto de trabajo medio en todos los nodos supera el umbral.

Alertas basadas en registros

Las alertas de registro permiten alertar sobre el plano de datos y los registros del plano de control. Ejecute consultas a intervalos predefinidos y cree una alerta basada en los resultados. Puede comprobar el recuento de determinados registros o realizar cálculos basados en columnas numéricas.

Consulte Creación de alertas de registro desde container Insights y Consulta de registros desde Container Insights. Las alertas de registro pueden medir dos cosas diferentes, que se pueden usar para supervisar en escenarios diferentes:

  • Recuento de resultados: cuenta el número de filas devueltas por la consulta y se puede usar para trabajar con eventos como registros de eventos de Windows, Syslog y excepciones de aplicación.
  • Cálculo de un valor: realiza un cálculo a partir de una columna numérica y se puede usar para incluir cualquier número de recursos. Un ejemplo es el porcentaje de CPU.

En función del escenario de alerta necesario, las consultas de registro deben crearse comparando DateTime con la hora actual mediante el now operador y retrocediendo una hora. Para obtener información sobre cómo crear alertas basadas en registros, consulte Creación de alertas de registro desde Container Insights.

Observabilidad de red

La observabilidad de red es una parte importante del mantenimiento de un clúster de Kubernetes correcto y eficaz. Al recopilar y analizar datos sobre el tráfico de red, puede obtener información sobre cómo funciona el clúster e identificar posibles problemas antes de que causen interrupciones o degradación del rendimiento.

Cuando el complemento observabilidad de red está habilitado, recopila y convierte métricas útiles en formato Prometheus, que se puede visualizar en Grafana. Cuando se habilita, las métricas recopiladas se ingieren automáticamente en el servicio administrado de Azure Monitor para Prometheus. Un panel de Grafana está disponible en el repositorio de paneles públicos de Grafana para visualizar las métricas de observabilidad de red recopiladas por Prometheus. Para obtener más información, consulte Configuración de observabilidad de red para obtener instrucciones detalladas.

Pasos siguientes