Compartir a través de


Habilitación de la supervisión de clústeres de Kubernetes

En este artículo se describe cómo habilitar la supervisión completa de los clústeres de Kubernetes mediante las siguientes características de Azure Monitor:

Con Azure Portal, puede habilitar todas las características al mismo tiempo. También puede habilitarlas individualmente mediante la CLI de Azure, la plantilla de Azure Resource Manager, Terraform o Azure Policy. Cada uno de estos métodos se describe en este artículo.

Importante

Los clústeres de Kubernetes generan una gran cantidad de datos de registro, lo que puede dar lugar a costos significativos si no haces una selección de los registros que recopilas. Antes de habilitar la supervisión del clúster, consulta los siguientes artículos para asegurarte de que el entorno está optimizado para el costo y que limita la recopilación de registros solo a los datos que necesitas:

Clústeres admitidos

En este artículo se proporcionan instrucciones de incorporación para los siguientes tipos de clústeres. Las diferencias en el proceso para cada tipo se indican en las secciones pertinentes.

Requisitos previos

Permisos

Requisitos previos de Managed Prometheus

  • El clúster debe usar la autenticación de identidad administrada.
  • Los siguientes proveedores de recursos deben registrarse en la suscripción del clúster y en el área de trabajo de Azure Monitor:
    • Microsoft.ContainerService
    • Microsoft.Insights
    • Microsoft.GestiónDeAlertas
    • Microsoft.Monitor
    • Los siguientes proveedores de recursos deben estar registrados en la suscripción del área de trabajo de Grafana:
      • Microsoft.Dashboard

Requisitos previos de los clústeres de Kubernetes habilitados para Arc

Nota:

La extensión de Kubernetes habilitada para Arc Managed Prometheus no admite las siguientes configuraciones:

  • Distribuciones Red Hat Openshift en Azure, incluidas Red Hat OpenShift (ARO)
  • Nodos de Windows*

*Para los clústeres habilitados para ARC con nodos de Windows, puede configurar Azure Managed Prometheus en un nodo de Linux dentro del clúster y configurar la extracción de métricas de los puntos de conexión de métricas que se ejecutan en los nodos de Windows.

Áreas de trabajo

En la tabla siguiente se describen las áreas de trabajo necesarias para admitir Managed Prometheus y Container Insights. Puede crear cada área de trabajo como parte del proceso de incorporación o usar un área de trabajo existente. Consulte Diseño de una arquitectura de áreas de trabajo de Log Analytics para obtener orientación sobre cuántas áreas de trabajo crear y dónde deberían estar situadas.

Característica Área de trabajo Notas
Prometheus administrado Área de trabajo de Azure Monitor El permiso Contributor es suficiente para permitir que el complemento envíe datos al área de trabajo de Azure Monitor. Necesitará un permiso de nivel Owner para vincular su área de trabajo de Azure Monitor para ver las métricas en Azure Managed Grafana. Esto es necesario porque el usuario que ejecuta el paso de incorporación, necesita ser capaz de dar al sistema de Azure Managed Grafana el rol de identidad Monitoring Reader en el área de trabajo de Azure Monitor para consultar las métricas.
Container Insights Área de trabajo de Log Analytics Puede asociar un clúster a un área de trabajo de Log Analytics en otra suscripción de Azure en el mismo inquilino de Microsoft Entra, pero debe usar la CLI de Azure o una plantilla de Azure Resource Manager. Actualmente no puede realizar esta configuración con Azure Portal.

Si va a conectar un clúster existente a un área de trabajo de Log Analytics en otra suscripción, el proveedor de recursos Microsoft.ContainerService debe registrarse en la suscripción con el área de trabajo de Log Analytics. Para obtener más información, consulte Registro del proveedor de recursos.

Para obtener una lista de los pares de asignación compatibles para utilizar con el área de trabajo predeterminada, vea Asignaciones de región admitidas por Container Insights. Consulte Configuración de Azure Monitor con perímetro de seguridad de red para obtener instrucciones sobre cómo configurar el área de trabajo con el perímetro de seguridad de red.
Managed Grafana Área de trabajo de Azure Managed Grafana Vincule su área de trabajo de Grafana a su área de trabajo de Azure Monitor para que las métricas de Prometheus recopiladas de su clúster estén disponibles en los paneles de Grafana.

Habilitar Prometheus y Grafana

Use uno de los siguientes métodos para habilitar la extracción de métricas de Prometheus de su clúster y permitir que Managed Grafana visualice las métricas. Consulte Vincular un área de trabajo de Grafana para ver las opciones para conectar su área de trabajo de Azure Monitor y su área de trabajo de Azure Managed Grafana.

Importante

  • Si implementa mediante una plantilla o Azure Policy, asegúrese de que los puntos de conexión de recopilación de datos, las reglas de recopilación de datos y las asociaciones de reglas de recopilación de datos se denominan MSProm-<Location of Azure Monitor Workspace>-<Name of cluster resource> o el proceso de incorporación no se completará correctamente.

  • Si tiene un único recurso de Azure Monitor con un vínculo privado, la habilitación de Prometheus no funcionará si el clúster de AKS y el área de trabajo de Azure Monitor están en regiones diferentes. Cree una nueva DCE y DCRA en la misma región del clúster. Asocie el nuevo DCE al clúster y asigne el nombre configurationAccessEndpoint al nuevo DCRA. Consulte Habilitación del vínculo privado para la supervisión de Kubernetes en Azure Monitor.

Habilitación con la CLI

Si no especifica un área de trabajo de Azure Monitor existente en los siguientes comandos, se usará el área de trabajo predeterminada para el grupo de recursos. Si aún no existe un área de trabajo predeterminada en la región del clúster, se creará una con un nombre en el formato DefaultAzureMonitorWorkspace-<mapped_region> en un grupo de recursos con el nombre DefaultRG-<cluster_region>.

Requisitos previos

  • Se requiere la versión de Az CLI 2.49.0 o posterior.
  • La extensión aks-preview debe desinstalarse de los clústeres de AKS usando el comando az extension remove --name aks-preview.
  • La extensión k8s-extension debe instalarse mediante el comando az extension add --name k8s-extension.
  • Se requiere la versión 1.4.1 o superior de la extensión k8s.

Parámetros opcionales

Cada uno de los comandos de AKS y Arc-Enabled Kubernetes permiten los siguientes parámetros opcionales. El nombre del parámetro es diferente para cada uno, pero su uso es el mismo.

Parámetro Nombre y descripción
Claves de anotación AKS: --ksm-metric-annotations-allow-list
Arc: --AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList

Lista separada por comas de claves de anotaciones de Kubernetes usadas en la métrica del kube_resource_annotations recurso. Por ejemplo, kube_pod_annotations es la métrica de anotaciones para el recurso pods. De manera predeterminada, la métrica solo contiene etiquetas de nombre y espacio de nombres. Para incluir más anotaciones, proporcione una lista de nombres de recursos en su forma plural y las claves de anotación de Kubernetes que quiera permitir para ellos. Se puede proporcionar un solo carácter * por recurso para permitir cualquier anotación, pero esto tiene graves consecuencias sobre el rendimiento. Por ejemplo, pods=[kubernetes.io/team,...],namespaces=[kubernetes.io/team],....
Claves de etiqueta AKS: --ksm-metric-labels-allow-list
Arc: --AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist

Lista separada por comas de más claves de etiquetas de Kubernetes que se usa en las métricas kube_resource_labels y kube_resource_labels del recurso. Por ejemplo, kube_pod_labels es la métrica de etiquetas del recurso pods. De manera predeterminada, esta métrica solo contiene etiquetas de nombre y espacio de nombres. Para incluir más etiquetas, proporcione una lista de nombres de recursos en plural y las claves de etiqueta de Kubernetes que quiera permitir para ellos. Se puede proporcionar un solo valor * para cada recurso para permitir cualquier etiqueta, pero esto tiene graves consecuencias para el rendimiento. Por ejemplo, pods=[app],namespaces=[k8s-label-1,k8s-label-n,...],....
Reglas de grabación AKS: --enable-windows-recording-rules

Permite habilitar los grupos de reglas de grabación necesarios para el funcionamiento adecuado de los paneles de Windows.

Clúster de AKS

Use la opción de -enable-azure-monitor-metrics, az aks create o az aks update (dependiendo de si está creando un nuevo clúster o actualizando uno existente) para instalar el complemento de métricas que agrega las métricas de Prometheus.

### Use default Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group>

### Use existing Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <workspace-name-resource-id>

### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <azure-monitor-workspace-name-resource-id> --grafana-resource-id  <grafana-workspace-name-resource-id>

### Use optional parameters
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --ksm-metric-labels-allow-list "namespaces=[k8s-label-1,k8s-label-n]" --ksm-metric-annotations-allow-list "pods=[k8s-annotation-1,k8s-annotation-n]"

Clúster habilitado para Arc

### Use default Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics

## Use existing Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id>

### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id>

### Use optional parameters
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id> AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList="pods=[k8s-annotation-1,k8s-annotation-n]" AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist "namespaces=[k8s-label-1,k8s-label-n]"

Los siguientes parámetros opcionales adicionales están disponibles para clústeres habilitados para Azure Arc:

Parámetro Descripción Predeterminado Configuración del clúster de Arc ascendente
ClusterDistribution Distribución del clúster. Azure.Cluster.Distribution
CloudEnvironment Entorno de nube para el clúster. Azure.Cluster.Cloud
MountCATrustAnchorsDirectory Si se va a montar el directorio de anclajes de confianza de CA. true no
MountUbuntuCACertDirectory Si se va a montar el directorio de certificados de entidad de certificación de Ubuntu. true a menos que sea una distribución de aks_edge. no

Habilitación de Container Insights

Use uno de los métodos siguientes para habilitar Container Insights en el clúster. Una vez finalizada esta tarea, consulte Configurar la recopilación de datos del agente para obtener información del contenedor para personalizar su configuración y asegurarse de que no está recopilando más datos de los que necesita.

Importante

Use uno de los siguientes comandos para habilitar la supervisión de los clústeres habilitados para AKS y Arc. Si no especifica un área de trabajo de Log Analytics existente, se usará el área de trabajo predeterminada para el grupo de recursos. Si aún no existe un área de trabajo predeterminada en la región del clúster, se creará una con un nombre con el formato DefaultWorkspace-<GUID>-<Region>.

Requisitos previos

  • CLI de Azure, versión 2.43.0 o superior
  • La autenticación de identidad administrada se realizará de manera predeterminada en la versión CLI 2.49.0 o superior.
  • Azure k8s-extension, versión 1.3.7 o superior
  • La autenticación de identidad administrada es el valor predeterminado en k8s-extension versión 1.43.0 o posterior.
  • La autenticación de identidad administrada no es compatible con los clústeres de Kubernetes habilitados para Arc con nodos ARO (Azure Red Hat Openshift) o Windows. Use la autenticación heredada.
  • Para la versión de la CLI 2.54.0 o superior, el esquema de registro se configurará en ContainerLogV2 usando ConfigMap.

Nota:

Puede habilitar el esquema ContainerLogV2 en el nivel de clúster a través de la regla de recopilación de datos (DCR) del clúster o ConfigMap. Si ambas opciones están habilitadas, ConfigMap tendrá prioridad. Los registros stdout y stderr serán registrados en la tabla ContainerLog solo cuando el DCR y el ConfigMap estén establecidos explícitamente en apagados.

Clúster de AKS

### Use default Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name>

### Use existing Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id>

### Use legacy authentication
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id> --enable-msi-auth-for-monitoring false

Ejemplo

az aks enable-addons --addon monitoring --name "my-cluster" --resource-group "my-resource-group" --workspace-resource-id "/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"

Clúster habilitado para Arc

### Use default Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers

### Use existing Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID=<workspace-resource-id>

### Use managed identity authentication (default as k8s-extension version 1.43.0)
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=true

### Use advanced configuration settings
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings  amalogs.resources.daemonset.limits.cpu=150m amalogs.resources.daemonset.limits.memory=600Mi amalogs.resources.deployment.limits.cpu=1 amalogs.resources.deployment.limits.memory=750Mi

### With custom mount path for container stdout & stderr logs
### Custom mount path not required for Azure Stack Edge version > 2318. Custom mount path must be /home/data/docker for Azure Stack Edge cluster with version <= 2318
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.logsettings.custommountpath=<customMountPath>

Consulte la sección de solicitudes y límites de recursos del gráfico Helm para conocer las opciones de configuración disponibles.

Ejemplo

az k8s-extension create --name azuremonitor-containers --cluster-name "my-cluster" --resource-group "my-resource-group" --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID="/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"

Clúster habilitado para Arc con proxy de reenvío

Si el clúster está configurado con un proxy de reenvío, la configuración del proxy se aplica automáticamente a la extensión. En el caso de un clúster con AMPLS + proxy, se debe omitir la configuración del proxy. Incorpore la extensión con el valor de configuración amalogs.ignoreExtensionProxySettings=true.

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.ignoreExtensionProxySettings=true

Clúster habilitado para Arc con nodos ARO u OpenShift o Windows

La autenticación de identidad administrada no es compatible con los clústeres de Kubernetes habilitados para Arc con nodos ARO (Azure Red Hat Openshift) u OpenShift o Windows. Use la autenticación heredada especificando amalogs.useAADAuth=false como en el ejemplo siguiente.

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=false

Eliminación de una instancia de extensión

El siguiente comando solo elimina la instancia de la extensión, pero no elimina el área de trabajo de Log Analytics. Los datos del recurso de Log Analytics permanecen intactos.

az k8s-extension delete --name azuremonitor-containers --cluster-type connectedClusters --cluster-name <cluster-name> --resource-group <resource-group>

Habilitación de la supervisión completa con Azure Portal

Nuevo clúster de AKS (Prometheus, Container Insights y Grafana)

Al crear un nuevo clúster de AKS en Azure Portal, las casillas Habilitar registros de contenedor, Habilitar métricas de Prometheus, Habilitar Grafana y Habilitar alertas recomendadas se activan de forma predeterminada en la pestaña Supervisión.

Recorte de pantalla de la pestaña Supervisión del nuevo clúster de AKS.

Clúster existente (Prometheus, Container Insights y Grafana)

  1. Vaya al clúster en Azure Portal.
  2. En el menú del servicio, seleccione Monitor>Configuración del Monitor.
  3. Las métricas y eventos de Prometheus, Grafana y Container Logs y se seleccionan automáticamente. Si ya tiene un área de trabajo de Azure Monitor, un área de trabajo de Grafana y un área de trabajo de Log Analytics, se seleccionarán automáticamente para usted.
  4. Seleccione Configuración avanzada si desea seleccionar áreas de trabajo alternativas o crear nuevas. La configuración Perfiles de registro y Perfiles clásicos permite modificar los detalles de recopilación predeterminados para reducir los costos de supervisión. Consulte Habilitar la configuración de optimización de costos en Container Insights para obtener más información.
  5. Seleccione Configurar.

Habilitación de la recopilación de métricas de Windows (versión preliminar)

Nota:

No hay ningún límite de CPU/memoria en windows-exporter-daemonset.yaml por lo que puede sobreaprovisionar los nodos de Windows.
Para más información, consulte Reserva de recursos.

A medida que implementa cargas de trabajo, establezca los límites de memoria de recursos y CPU en los contenedores. Esto también resta de NodeAllocatable y ayuda al programador de todo el clúster a determinar qué pods colocar en qué nodos. La programación de pods sin límites puede sobreaprovisionar los nodos de Windows y, en casos extremos, puede hacer que los nodos sean incorrectos.

A partir de la versión 6.4.0-main-02-22-2023-3ee44b9e del contenedor de complementos de Managed Prometheus (prometheus_collector), la colección de métricas de Windows se ha habilitado para los clústeres de AKS. La incorporación al complemento Métricas de Azure Monitor permite que los pods de Windows DaemonSet empiecen a ejecutarse en los grupos de nodos. Se admiten Windows Server 2019 y Windows Server 2022. Siga los pasos que se indican a continuación para permitir que los pods recopilen métricas de los grupos de nodos de Windows.

  1. Instale manualmente windows-exporter en nodos de AKS para acceder a las métricas de Windows mediante la implementación del archivo windows-exporter-daemonset YAML. Habilite los siguientes recopiladores:

    • [defaults]
    • container
    • memory
    • process
    • cpu_info

    Para obtener más recopiladores,vea Exportador de Prometheus para métricas de Windows.

    Implementar el archivo windows-exporter-daemonset YAML. Tenga en cuenta que si hay alguna tolerancias aplicada en el nodo, deberá aplicar las tolerancias adecuadas.

        kubectl apply -f windows-exporter-daemonset.yaml
    
  2. Aplique ama-metrics-settings-configmap al clúster. Establezca los valores booleanos windowsexporter y windowskubeproxy en true. Para más información, consulte Configmap de configuración del complemento de métricas.

  3. Habilite las reglas de grabación necesarias para los paneles de serie:

    • Si se incorpora mediante la CLI, incluya la opción --enable-windows-recording-rules.
    • Si se realiza la incorporación utilizando una plantilla de ARM, Bicep o una Política de Azure, establezca enableWindowsRecordingRules en true en el archivo de parámetros.
    • Si el clúster ya está integrado, utilice esta plantilla de ARM y este archivo de parámetros para crear los grupos de reglas. Esto agregará las reglas de grabación necesarias y no es una operación de ARM en el clúster y no afecta al estado de supervisión actual del clúster.
  4. [Solo para nodos de Windows en clústeres habilitados para ARC] Si va a habilitar Managed Prometheus para un clúster habilitado para ARC, puede configurar Managed Prometheus que se ejecuta en un nodo de Linux dentro del clúster para extraer las métricas de los puntos de conexión que se ejecutan en los nodos de Windows. Agregue el siguiente trabajo de extracción a ama-metrics-prometheus-config-configmap.yaml y aplique el configmap a su clúster.

  scrape_configs:
    - job_name: windows-exporter
      scheme: http
      scrape_interval: 30s
      label_limit: 63
      label_name_length_limit: 511
      label_value_length_limit: 1023
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        insecure_skip_verify: true
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - source_labels: [__meta_kubernetes_node_name]
        target_label: instance
      - action: keep
        source_labels: [__meta_kubernetes_node_label_kubernetes_io_os]
        regex: windows
      - source_labels:
        - __address__
        action: replace
        target_label: __address__
        regex: (.+?)(\:\d+)?
        replacement: $$1:9182
kubectl apply -f ama-metrics-prometheus-config-configmap.yaml

Comprobación de la implementación

Use la herramienta de línea de comandos kubectl para verificar que el agente se implementa correctamente.

Prometheus administrado

Comprobar que DaemonSet se implementó correctamente en los grupos de nodos de Linux

kubectl get ds ama-metrics-node --namespace=kube-system

El número de pods debe ser igual al número de nodos de Linux del clúster. La salida debería ser similar al ejemplo siguiente:

User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-metrics-node   1         1         1       1            1           <none>          10h

Comprobar que los nodos de Windows se han implementado correctamente

kubectl get ds ama-metrics-win-node --namespace=kube-system

El número de pods debe ser igual al número de nodos de Windows del clúster. La salida debería ser similar al ejemplo siguiente:

User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME                   DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-metrics-win-node   3         3         3       3            3           <none>          10h

Comprobar que se implementaron los dos ReplicaSets para Prometheus

kubectl get rs --namespace=kube-system

La salida debería ser similar al ejemplo siguiente:

User@aksuser:~$kubectl get rs --namespace=kube-system
NAME                            DESIRED   CURRENT   READY   AGE
ama-metrics-5c974985b8          1         1         1       11h
ama-metrics-ksm-5fcf8dffcd      1         1         1       11h

Container Insights

Comprobar que DaemonSets se implementó correctamente en los grupos de nodos de Linux

kubectl get ds ama-logs --namespace=kube-system

El número de pods debe ser igual al número de nodos de Linux del clúster. La salida debería ser similar al ejemplo siguiente:

User@aksuser:~$ kubectl get ds ama-logs --namespace=kube-system
NAME       DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-logs   2         2         2         2            2           <none>          1d

Comprobar que los nodos de Windows se han implementado correctamente

kubectl get ds ama-logs-windows --namespace=kube-system

El número de pods debe ser igual al número de nodos de Windows del clúster. La salida debería ser similar al ejemplo siguiente:

User@aksuser:~$ kubectl get ds ama-logs-windows --namespace=kube-system
NAME                   DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR     AGE
ama-logs-windows           2         2         2         2            2       <none>            1d

Comprobar la implementación de la solución Container Insights

kubectl get deployment ama-logs-rs --namespace=kube-system

La salida debería ser similar al ejemplo siguiente:

User@aksuser:~$ kubectl get deployment ama-logs-rs --namespace=kube-system
NAME          READY   UP-TO-DATE   AVAILABLE   AGE
ama-logs-rs   1/1     1            1           24d

Visualización de la configuración con la CLI

Use el comando aks show para averiguar si la solución está habilitada, el id. de recurso del área de trabajo de Log Analytics y la información de resumen sobre el clúster.

az aks show --resource-group <resourceGroupofAKSCluster> --name <nameofAksCluster>

El comando devolverá información con formato JSON sobre la solución. La sección addonProfiles debe incluir información sobre omsagent como se muestra en el ejemplo siguiente:

"addonProfiles": {
    "omsagent": {
        "config": {
            "logAnalyticsWorkspaceResourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
            "useAADAuth": "true"
        },
        "enabled": true,
        "identity": null
    },
}

Recursos aprovisionados

Al habilitar la supervisión, se crean los siguientes recursos en la suscripción:

Nombre de recurso Tipo de recurso Grupo de recursos Región o ubicación Descripción
MSCI-<aksclusterregion>-<clustername> Regla de recopilación de datos Igual que el clúster Igual que el área de trabajo de Log Analytics Esta regla de recopilación de datos es para la recopilación de registros por el agente de Azure Monitor, que usa el área de trabajo de Log Analytics como destino y está asociada al recurso de clúster de AKS.
MSPROM-<aksclusterregion>-<clustername> Regla de recopilación de datos Igual que el clúster Igual que el área de trabajo de Azure Monitor Esta regla de recopilación de datos es para la recopilación de métricas de Prometheus mediante el complemento de métricas, que tiene como destino el área de trabajo de Azure Monitor elegida, y también está asociada al recurso de clúster de AKS
MSPROM-<aksclusterregion>-<clustername> Puntos de conexión de recopilación de datos Igual que el clúster Igual que el área de trabajo de Azure Monitor Esta regla de recopilación de datos usa este punto de conexión de recopilación de datos para ingerir métricas de Prometheus desde el complemento de métricas

Al crear un área de trabajo nueva de Azure Monitor, se crean los siguientes recursos adicionales como parte de ella

Nombre de recurso Tipo de recurso Grupo de recursos Región o ubicación Descripción
<azuremonitor-workspace-name> Regla de recopilación de datos MA_<azuremonitor-workspace-name>_<azuremonitor-workspace-region>_managed Igual que el área de trabajo de Azure Monitor DCR creado cuando se usa el servidor de OSS Prometheus para Escribir remotamente en el área de trabajo de Azure Monitor.
<azuremonitor-workspace-name> Puntos de conexión de recopilación de datos en Azure Monitor MA_<azuremonitor-workspace-name>_<azuremonitor-workspace-region>_managed Igual que el área de trabajo de Azure Monitor DCE creado cuando se usa el servidor de OSS Prometheus para Escribir remotamente en el área de trabajo de Azure Monitor.

Diferencias entre los clústeres de Windows y Linux

Entre las principales diferencias al supervisar un clúster de Windows Server y un clúster de Linux se encuentran:

  • Windows no tiene una métrica RSS de memoria. Por lo tanto, no está disponible para los nodos y contenedores de Windows. La métrica de conjunto de trabajo está disponible.
  • La información sobre la capacidad de almacenamiento del disco no está disponible para los nodos de Windows.
  • Solo se supervisan los entornos de pods, no los entornos de Docker.
  • Con la versión preliminar, se admite un máximo de 30 contenedores de Windows Server. Esta limitación no se aplica a los contenedores de Linux.

Nota:

Container Insights es compatible con el sistema operativo Windows Server 2022 y está en versión preliminar.

El agente de Linux en contenedores (pod de ReplicaSet) hace llamadas API a todos los nodos de Windows del puerto seguro Kubelet (10250) en el clúster para recopilar métricas relacionadas con el rendimiento de los nodos y los contenedores. El puerto seguro de Kubelet (:10250) debe estar abierto tanto para el tráfico entrante como saliente en la red virtual del clúster, para que la recopilación de métricas relacionadas con el rendimiento de los nodos de Windows y contenedores funcione correctamente.

Si tiene un clúster de Kubernetes con nodos de Windows, revise y configure el grupo de seguridad de red y las directivas de red para asegurarse de que el puerto seguro de Kubelet (:10250) se abre tanto para la entrada como para la salida en la red virtual del clúster.

Pasos siguientes

  • Si experimenta problemas al intentar incorporar la solución, consulte la Guía de solución de problemas.
  • Con la supervisión habilitada para recopilar el estado y la utilización de recursos del clúster de AKS y las cargas de trabajo que se ejecutan en estos, aprenda cómo usar Container Insights.