Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo configurar la observabilidad de la red de contenedor para Azure Kubernetes Service (AKS) mediante Prometheus administrado y Grafana y BYO Prometheus y Grafana y para visualizar las métricas desguazadas.
Puede usar observabilidad de red de contenedor para recopilar datos sobre el tráfico de red de los clústeres de AKS. Proporciona una plataforma centralizada para supervisar el estado de la aplicación y la red. Actualmente, las métricas se almacenan en Prometheus y Grafana se pueden usar para visualizarlas. La observabilidad de la red contenedora también ofrece la posibilidad de habilitar a Storage. Estas funcionalidades se admiten tanto para clústeres de Cilium como para clústeres que no son de Cilium.
La observabilidad de la red de contenedor es una de las características de Advanced Container Networking Services. Para más información sobre Advanced Container Networking Services for Azure Kubernetes Service (AKS), consulte ¿Qué es Advanced Container Networking Services para Azure Kubernetes Service (AKS)?
Importante
A partir del 30 de noviembre de 2025, Azure Kubernetes Service (AKS) ya no admite ni proporciona actualizaciones de seguridad para Azure Linux 2.0. La imagen de nodo de Linux 2.0 de Azure está congelada en la versión 202512.06.0. A partir del 31 de marzo de 2026, se quitarán las imágenes de nodo y no podrá escalar los grupos de nodos. Migre a una versión compatible de Azure Linux mediante la actualización de los grupos de nodos a una versión de Kubernetes compatible o la migración a osSku AzureLinux3. Para más información, consulte [Retirada] Grupos de nodos de Azure Linux 2.0 en AKS.
Prerequisites
- Una cuenta de Azure con una suscripción activa. Si no tienes una, crea una cuenta gratuita antes de empezar.
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Introducción a Azure Cloud Shell.
Si prefieres ejecutar comandos de referencia CLI localmente, instala la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, consulte Ejecución de la CLI de Azure en un contenedor de Docker.
Si estás utilizando una instalación local, inicia sesión en Azure CLI utilizando el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Autenticación en Azure mediante la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para obtener más información sobre las extensiones, consulte Uso y administración de extensiones con la CLI de Azure.
Ejecute az version para ver la versión y las bibliotecas dependientes que están instaladas. Para actualizar a la versión más reciente, ejecute az upgrade.
- La versión mínima de la CLI de Azure necesaria para los pasos de este artículo es la 2.56.0. Ejecute
az --versionpara encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.
Habilitación de Servicios avanzados de redes de contenedores
Para continuar, debe tener un clúster de AKS con Servicios avanzados de redes de contenedores habilitado.
El comando az aks create con la marca Advanced Container Networking Services, --enable-acns, crea un nuevo clúster de AKS con todas las características avanzadas de Container Networking Services. Estas características abarcan:
Observabilidad de red de contenedor: Proporciona información sobre el tráfico de red. Para obtener más información, visite Observabilidad de la red de contenedor.
Seguridad de red de contenedor: ofrece características de seguridad como el filtrado de FQDN. Para más información, visite Seguridad de red de contenedores.
Note
Los clústeres con el plano de datos de Cilium admiten la observabilidad de la red de contenedor y la seguridad de la red de contenedor a partir de la versión 1.29 de Kubernetes.
# Set an environment variable for the AKS cluster name. Make sure to replace the placeholder with your own value.
export CLUSTER_NAME="<aks-cluster-name>"
# Create an AKS cluster
az aks create \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--generate-ssh-keys \
--location eastus \
--max-pods 250 \
--network-plugin azure \
--network-plugin-mode overlay \
--network-dataplane cilium \
--node-count 2 \
--pod-cidr 192.168.0.0/16 \
--kubernetes-version 1.29 \
--enable-acns
Habilitación de Servicios avanzados de redes de contenedores en un clúster existente
El az aks update comando con la marca Advanced Container Networking Services, --enable-acns, actualiza un clúster de AKS existente con todas las características avanzadas de Container Networking Services que incluye observabilidad de red de contenedor y la característica Seguridad de red de contenedor .
Note
Solo los clústeres con el plano de datos de Cilium admiten características de seguridad de red de contenedor de Advanced Container Networking Services.
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--enable-acns
Obtener credenciales del clúster
Una vez que obtenga sus credenciales de clúster mediante el comandoaz aks get-credentials.
az aks get-credentials --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Prometheus y Grafana administrados por Azure
Omitir esta sección si usa BYO Prometheus y Grafana
Use el ejemplo siguiente para instalar y habilitar Prometheus y Grafana para el clúster de AKS.
Creación de un recurso de Azure Monitor
#Set an environment variable for the Grafana name. Make sure to replace the placeholder with your own value.
export AZURE_MONITOR_NAME="<azure-monitor-name>"
# Create Azure monitor resource
az resource create \
--resource-group $RESOURCE_GROUP \
--namespace microsoft.monitor \
--resource-type accounts \
--name $AZURE_MONITOR_NAME \
--location eastus \
--properties '{}'
Creación de una instancia de Grafana administrada de Azure
Use az grafana create para crear una instancia de Grafana. El nombre de la instancia de Grafana debe ser único.
# Set an environment variable for the Grafana name. Make sure to replace the placeholder with your own value.
export GRAFANA_NAME="<grafana-name>"
# Create Grafana instance
az grafana create \
--name $GRAFANA_NAME \
--resource-group $RESOURCE_GROUP
Colocar los identificadores de recursos de Azure Managed Grafana y Azure Monitor en variables
Use az grafana show para colocar el id. de recurso de Grafana en una variable. Use az resource show para colocar el id. de recurso de Azure Monitor en una variable. Reemplace myGrafana por el nombre de la instancia de Grafana.
grafanaId=$(az grafana show \
--name $GRAFANA_NAME \
--resource-group $RESOURCE_GROUP \
--query id \
--output tsv)
azuremonitorId=$(az resource show \
--resource-group $RESOURCE_GROUP \
--name $AZURE_MONITOR_NAME \
--resource-type "Microsoft.Monitor/accounts" \
--query id \
--output tsv)
Vinculación de Azure Monitor y Azure Managed Grafana al clúster de AKS
Use az aks update para vincular los recursos de Azure Monitor y Grafana al clúster de AKS.
az aks update \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--enable-azure-monitor-metrics \
--azure-monitor-workspace-resource-id $azuremonitorId \
--grafana-resource-id $grafanaId
Visualization
Visualización mediante Azure Managed Grafana
Omitir este paso si usa BYO Grafana
Note
La métrica hubble_flows_processed_total no se extrae de forma predeterminada debido a una cardinalidad de métrica alta en clústeres a gran escala.
Por este motivo, los paneles de flujos de pods tienen paneles con datos que faltan. Para habilitar esta métrica y rellenar los datos que faltan, debe modificar ama-metrics-settings-configmap. En concreto, actualice la sección denominada default-targets-metrics-keep-list. Siga los pasos siguientes para actualizar el mapa de configuración:
- Obtenga el archivo ama-metrics-settings-configmap más reciente. (https://github.com/Azure/prometheus-collector/blob/main/otelcollector/configmaps/ama-metrics-settings-configmap.yaml)
- Busque networkobservabilityHubble = ""
- Cámbielo a networkobservabilityHubble = "hubble.*"
- Ahora deberían aparecer las métricas de flujo del pod.
Para obtener más información sobre la ingesta mínima, consulte la documentación de ingesta mínima.
Asegúrese de que los pods de Azure Monitor se ejecutan con el comando
kubectl get pods.kubectl get pods -o wide -n kube-system | grep ama-El resultado debería ser similar al ejemplo siguiente:
ama-metrics-5bc6c6d948-zkgc9 2/2 Running 0 (21h ago) 26h ama-metrics-ksm-556d86b5dc-2ndkv 1/1 Running 0 (26h ago) 26h ama-metrics-node-lbwcj 2/2 Running 0 (21h ago) 26h ama-metrics-node-rzkzn 2/2 Running 0 (21h ago) 26h ama-metrics-win-node-gqnkw 2/2 Running 0 (26h ago) 26h ama-metrics-win-node-tkrm8 2/2 Running 0 (26h ago) 26hHemos creado paneles de ejemplo. Se pueden encontrar en la carpeta Dashboards > Azure Managed Prometheus. Tienen nombres como "Kubernetes / Networking/
<name>". El conjunto de paneles incluye:- Clústeres: muestra las métricas de nivel de nodo para los clústeres.
- DNS (clúster): muestra las métricas de DNS en un clúster o la selección de nodos.
- DNS (carga de trabajo): muestra las métricas de DNS para la carga de trabajo especificada (por ejemplo, pods de un DaemonSet o una implementación como CoreDNS).
- Caídas (carga de trabajo): muestra las caídas hacia o desde la carga de trabajo especificada (por ejemplo, pods de una implementación o DaemonSet).
- Flujos de pod (espacio de nombres): muestra los flujos de paquetes L4/L7 hacia y desde el espacio de nombres especificado (es decir, pods en el espacio de nombres).
- Flujos de pod (carga de trabajo): muestra los flujos de paquetes L4/L7 hacia o desde la carga de trabajo especificada (por ejemplo, pods de una implementación o DaemonSet).
Visualización mediante BYO Grafana
Omitir este paso si usa Grafana administrado por Azure
Agregue el siguiente trabajo de extracción a la configuración de Prometheus existente y reinicie el servidor de Prometheus:
- job_name: networkobservability-hubble kubernetes_sd_configs: - role: pod relabel_configs: - target_label: cluster replacement: myAKSCluster action: replace - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_k8s_app] regex: kube-system;(retina|cilium) action: keep - source_labels: [__address__] action: replace regex: ([^:]+)(?::\d+)? replacement: $1:9965 target_label: __address__ - source_labels: [__meta_kubernetes_pod_node_name] target_label: instance action: replace metric_relabel_configs: - source_labels: [__name__] regex: '|hubble_dns_queries_total|hubble_dns_responses_total|hubble_drop_total|hubble_tcp_flags_total' # if desired, add |hubble_flows_processed_total action: keepEn Destinos de Prometheus, compruebe que los pods de red estén presentes.
Inicie sesión en Grafana e importe los paneles de ejemplo siguientes mediante los siguientes identificadores:
- Clústeres: muestra las métricas de nivel de nodo para los clústeres. (Id. : 18814)
- DNS (clúster): muestra las métricas de DNS en un clúster o la selección de nodos. (Id. : 20925)
- DNS (carga de trabajo): muestra las métricas de DNS para la carga de trabajo especificada (por ejemplo, pods de un DaemonSet o una implementación como CoreDNS). (ID : [20926] https://grafana.com/grafana/dashboards/20926-kubernetes-networking-dns-workload/)
- Caídas (carga de trabajo): muestra las caídas hacia o desde la carga de trabajo especificada (por ejemplo, pods de una implementación o DaemonSet).(ID: 20927).
- Flujos de pod (espacio de nombres): muestra los flujos de paquetes L4/L7 hacia y desde el espacio de nombres especificado (es decir, pods en el espacio de nombres). (Id. : 20928)
- Flujos de pod (carga de trabajo): muestra los flujos de paquetes L4/L7 hacia o desde la carga de trabajo especificada (por ejemplo, pods de una implementación o DaemonSet). (Id. : 20929)
Note
- En función de la configuración de las instancias de Prometheus/Grafana, algunos paneles de panel requieren ajustes específicos para mostrar todos los datos.
- Cilium no admite actualmente métricas o paneles de DNS.
Limpieza de recursos
Si no planea usar esta aplicación, elimine los demás recursos que creó en este artículo mediante el comando az group delete.
az group delete --name $RESOURCE_GROUP
Pasos siguientes
En este artículo de procedimientos, ha aprendido a instalar y habilitar la observabilidad de red de contenedor para el clúster de AKS.
Para más información sobre los servicios avanzados de redes de contenedores para Azure Kubernetes Service (AKS), consulte ¿Qué son los servicios avanzados de redes de contenedores para Azure Kubernetes Service (AKS)?.
Para obtener más información sobre la seguridad de red de contenedor y sus funcionalidades, consulte ¿Qué es la seguridad de red de contenedores?.