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:
- Managed Prometheus para la recopilación de métricas
- Container Insights para la recopilación de registros
- Managed Grafana para la visualización.
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:
- Configuración de la recopilación de datos y la optimización de costes en Container Insights mediante la regla de recopilación de datos
Detalles sobre cómo personalizar la recopilación de registros una vez que hayas habilitado la supervisión, incluido el uso de configuraciones de optimización de costos preestablecidas. - Procedimientos recomendados para supervisar Kubernetes con Azure Monitor
Procedimientos recomendados para supervisar clústeres de Kubernetes que organizan los cinco pilares del Marco de buena arquitectura de Azure, incluida la optimización de costos. - Optimización de costos en Azure Monitor
Procedimientos recomendados para configurar todas las características de Azure Monitor a fin de optimizar los costos y limitar la cantidad de datos que recopila.
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
- Se necesita al menos acceso de Colaborador al clúster para la incorporación.
- Se necesita Lector de supervisión o Colaborador de supervisión para ver los datos una vez habilitada la supervisión.
Requisitos previos de Managed Prometheus
- El clúster debe usar la autenticación de identidad administrada.
- Los siguientes proveedores de recursos deben estar registrados en la suscripción del clúster de AKS y el área de trabajo de Azure Monitor:
- Microsoft.ContainerService
- Microsoft.Insights
- Microsoft.AlertsManagement
- 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
- Requisitos previos para Extensiones de clúster de Kubernetes habilitado para Azure Arc.
- Compruebe los requisitos de firewall además de los requisitos de red de Kubernetes habilitado para Azure Arc.
- Si instaló anteriormente la supervisión de AKS, asegúrese de que ha deshabilitado la supervisión antes de continuar para evitar problemas durante la instalación de la extensión.
- Si previamente instaló la supervisión en un clúster usando un script sin extensiones de clúster, siga las instrucciones en Deshabilitar la supervisión del clúster de Kubernetes para eliminar este gráfico de Helm.
Nota:
La extensión de Kubernetes habilitada para Arc de Prometheus administrado no admite las siguientes configuraciones:
- Distribuciones Red Hat Openshift en Azure, incluidas Red Hat OpenShift (ARO)
- 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 de AKS a un área de trabajo de Log Analytics en una suscripción de Azure diferente 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 de AKS existente a un área de trabajo de Log Analytics en otra suscripción, el proveedor de recursos Microsoft.ContainerService debe estar registrado en la suscripción donde está 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. |
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.
Nota:
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. La configuración necesaria para el complemento Prometheus no está disponible entre regiones debido a la restricción del vínculo privado. Para resolver esto, cree un nuevo DCE en la ubicación del clúster de AKS y una nueva DCRA (asociación) en la misma región del clúster de AKS. Asocie el nuevo DCE al clúster de AKS y asigne el nombre configurationAccessEndpoint a la nueva asociación (DCRA). Para obtener instrucciones completas sobre cómo configurar los DCE asociados con el área de trabajo de Azure Monitor a fin de usar una instancia de Private Link para la ingesta de datos, vea Habilitación de 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.
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.
Comandos de muestra
### 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]"
Cualquiera de los comandos puede usar los siguientes parámetros opcionales:
- AKS:
--ksm-metric-annotations-allow-list
Arc:--AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList
Lista separada por comas de claves de anotaciones de Kubernetes que se usaron en la métrica kube_resource_annotations del 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 claves de anotación de Kubernetes para las que quiera que estén permitidos. 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],...
. - 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,...],...
. - AKS:
--enable-windows-recording-rules
permite habilitar los grupos de reglas de registro necesarios para el correcto funcionamiento de los paneles de Windows.
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.
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 solo se ingerirán en la tabla ContainerLog cuando DCR y ConfigMap se establezcan explícitamente en desactivados.
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
Los
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 amalogs.ignoreExtensionProxySettings=true
de configuración.
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, puede habilitar Prometheus, Container Insights y Grafana en la pestaña Supervisión. Asegúrese de activar las casillas Habilitar registros de contenedor, Habilitar métricas de Prometheus y Habilitar Grafana.
Clúster existente de AKS (Prometheus, Container Insights y Grafana)
- Vaya al clúster de AKS en Azure Portal.
- En el menú servicio, en Supervisión, seleccione Insights>Configurar supervisión.
- Container Insights ya está habilitado. Active las casillas Habilitar métricas de Prometheus y Habilitar Grafana. Si ya tiene un área de trabajo de Azure Monitor y un área de trabajo de Grafana, se seleccionarán automáticamente.
- Seleccione Configuración avanzada si desea seleccionar áreas de trabajo alternativas o crear nuevas. La configuración Valores preestablecidos de costo 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.
- Seleccione Configurar.
Clúster existente (solo Prometheus)
- Vaya al clúster de AKS en Azure Portal.
- En el menú servicio, en Supervisión, seleccione Insights>Configurar supervisión.
- Active la casilla Habilitar métricas de Prometheus.
- Seleccione Configuración avanzada si desea seleccionar áreas de trabajo alternativas o crear nuevas. La configuración Valores preestablecidos de costo permite modificar los detalles de recopilación predeterminados para reducir los costos de supervisión.
- 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 Prometheus administrado (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.
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, consulte exportador de Prometheus para métricas de Windows.
Implementar el archivo windows-exporter-daemonset YAML. Tenga en cuenta que si hay algún taint aplicado en el nodo, deberá aplicar las tolerancias adecuadas.
kubectl apply -f windows-exporter-daemonset.yaml
Aplique ama-metrics-settings-configmap al clúster. Establezca los valores booleanos
windowsexporter
ywindowskubeproxy
entrue
. Para obtener más información, consulte Configmap de configuración del complemento de métricas.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 incorpora mediante la plantilla ARM, Bíceps o Azure Policy, establezca
enableWindowsRecordingRules
entrue
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.
- Si se incorpora mediante la CLI, incluya la opción
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/00000000-0000-0000-0000-000000000000/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 espacio 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 en la red virtual del clúster para que la recopilación de métricas relacionadas con el rendimiento de los contenedores y nodos de Windows funcione.
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.