Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment configurer l’Observabilité du réseau de conteneurs pour Azure Kubernetes Service (AKS) à l’aide de Grafana et BYO Prometheus et Grafana et de visualiser les métriques récupérées
Vous pouvez utiliser l’Observabilité du réseau de conteneurs pour collecter des données sur le trafic réseau de vos clusters AKS. Elle active une plateforme centralisée qui surveille l’intégrité des applications et du réseau. Actuellement, les métriques sont stockées dans Prometheus et Grafana peut être utilisé pour les visualiser. L’Observabilité du réseau de conteneurs offre également la possibilité d’activer Hubble. Ces fonctionnalités sont prises en charge pour les clusters Cilium et non-Cilium.
L’Observabilité du réseau de conteneurs est l’une des fonctionnalités des services avancés de mise en réseau de conteneurs. Pour plus d’informations sur Advanced Container Networking Services pour Azure Kubernetes Service (AKS), consultez Qu’est-ce que Advanced Container Networking Services pour Azure Kubernetes Service (AKS) ?
Important
Depuis le 30 novembre 2025, Azure Kubernetes Service (AKS) ne prend plus en charge ou fournit des mises à jour de sécurité pour Azure Linux 2.0. L’image de nœud Azure Linux 2.0 est figée à la version 202512.06.0. À compter du 31 mars 2026, les images de nœud seront supprimées et vous ne pourrez pas mettre à l’échelle vos pools de nœuds. Migrez vers une version Azure Linux prise en charge en mettant à niveau vos pools de nœuds vers une version Kubernetes prise en charge ou en migrant vers osSku AzureLinux3. Pour plus d’informations, consultez [Retrait] Pools de nœuds Azure Linux 2.0 sur AKS.
Prerequisites
- Compte Azure avec un abonnement actif. Si vous n’en avez pas, créez un compte gratuit avant de commencer.
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour obtenir plus d’informations, consultez Démarrage d’Azure Cloud Shell.
Si vous préférez exécuter des commandes de référence CLI localement, installez Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir d’autres options de connexion, consultez S’authentifier auprès d’Azure à l’aide d’Azure CLI.
Quand vous y êtes invité, installez l’extension Azure CLI à la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser et gérer des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
- La version minimale d’Azure CLI requise pour les étapes de cet article est la version 2.56.0. Exécutez
az --versionpour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
Activer les services avancés de mise en réseau de conteneurs
Pour continuer, vous devez disposer d’un cluster AKS avec Advanced Container Networking Services activé.
La commande az aks create avec l'indicateur Advanced Container Azure Networking Services, --enable-acns, crée un nouveau cluster AKS avec toutes les fonctionnalités Advanced Container Networking Services. Ces fonctionnalités comprennent :
Observabilité du réseau de conteneurs : fournit des informations sur votre trafic réseau. Pour en savoir plus, visitez Observabilité du réseau de conteneurs.
Sécurité du réseau de conteneurs : offre des fonctionnalités de sécurité telles que le filtrage FQDN. Pour en savoir plus, consultez Sécurité du réseau de conteneurs.
Note
Les clusters avec le plan de données Cilium prennent en charge l'observabilité du réseau de conteneurs et la sécurité du réseau de conteneurs à partir de la version 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
Les services avancés de mise en réseau de conteneurs sur un cluster existant
La az aks update commande avec l’indicateur Advanced Container Networking Services, met --enable-acnsà jour un cluster AKS existant avec toutes les fonctionnalités Advanced Container Networking Services qui incluent l’observabilité du réseau de conteneurs et la fonctionnalité de sécurité du réseau de conteneurs .
Note
Seuls les clusters avec le plan de données Cilium prennent en charge les fonctionnalités Sécurité du réseau de conteneurs des services avancés de mise en réseau de conteneurs.
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--enable-acns
Obtenir les informations d’identification du cluster
Une fois que vous avez obtenu vos informations d’identification de cluster à l’aide de la commande az aks get-credentials.
az aks get-credentials --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Prometheus et Grafana gérés par Azure
Ignorez cette section si vous utilisez BYO Prometheus et Grafana
Utilisez l’exemple suivant pour installer et activer Prometheus et Grafana pour votre cluster AKS.
Créer une ressource 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 '{}'
Créer une instance Azure Managed Grafana
Utilisez la commande az grafana create pour créer un instance Grafana. Le nom de l’instance Grafana doit être unique.
# 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
Placer les ID de ressource Azure Managed Grafana et Azure Monitor dans des variables
Utilisez la commande az grafana show pour placer l’ID de ressource Grafana dans une variable. Utilisez la commande az resource show pour placer l’ID de ressource Azure Monitor dans une variable. Remplacez myGrafana par le nom de votre instance 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)
Lier Azure Monitor et Azure Managed Grafana au cluster AKS
Utilisez la commande az aks update pour lier des ressources Azure Monitor et Grafana à votre cluster 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
Visualisation à l’aide d’Azure Managed Grafana
Ignorez cette étape si vous utilisez BYO Grafana
Note
La métrique hubble_flows_processed_total n’est pas récupérée par défaut en raison d’une cardinalité de métrique élevée dans les clusters à grande échelle.
En raison de cela, les tableaux de bord Pods Flow ont des panneaux avec des données manquantes. Pour activer cette métrique et remplir les données manquantes, vous devez modifier l’ama-metrics-settings-configmap. Plus précisément, mettez à jour la section default-targets-metrics-keep-list. Suivez les étapes ci-dessous pour mettre à jour le configmap :
- Obtenez la plus récente ama-metrics-settings-configmap. (https://github.com/Azure/prometheus-collector/blob/main/otelcollector/configmaps/ama-metrics-settings-configmap.yaml)
- Recherchez networkobservabilityHubble = « »
- Remplacez-le par networkobservabilityHubble = « hubble.* »
- Désormais, les mesures de flux de pod devraient se remplir automatiquement.
Pour en savoir plus sur ce qu’est l’ingestion minimale, consultez la documentation sur l’ingestion minimale.
Vérifiez que les pods Azure Monitor s’exécutent à l’aide de la commande
kubectl get pods.kubectl get pods -o wide -n kube-system | grep ama-Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
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) 26hNous avons créé des exemples de tableaux de bord. Ils se trouvent sous le dossier Tableaux de bord > Prometheus géré par Azure. Ils ont des noms comme « Kubernetes / Networking /
<name>». La suite de tableaux de bord comprend les éléments suivants :- Clusters : affiche les métriques au niveau du nœud pour vos clusters.
- DNS (Cluster) : affiche les métriques DNS sur un cluster ou une sélection de nœuds.
- DNS (Charge de travail) : affiche les métriques DNS pour la charge de travail spécifiée (par exemple, pods d’un DaemonSet ou d’un déploiement tel que CoreDNS).
- Dépôts (Charge de travail) : affiche les dépôts vers/depuis la charge de travail spécifiée (par exemple, les pods d’un déploiement ou d’un DaemonSet).
- Flux de pods (Espace de noms) : affiche les flux de paquets L4/L7 vers/depuis l’espace de noms spécifié (c’est-à-dire les pods dans l’espace de noms).
- Flux de pods (charge de travail) : affiche les flux de paquets L4/L7 vers/depuis la charge de travail spécifiée (par exemple, les pods d'un déploiement ou d'un DaemonSet).
Visualisation à l’aide de BYO Grafana
Ignorez cette étape si vous utilisez Azure Managed Grafana
Ajoutez le travail de scrape suivant à votre configuration Prometheus existante et redémarrez votre serveur 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: keepDans Cibles de Prometheus, vérifiez la présence des pods observabilité réseau.
Connectez-vous à Grafana et importez les exemples de tableaux de bord suivants à l’aide des ID suivants :
- Clusters : affiche les métriques au niveau du nœud pour vos clusters. (ID : 18814)
- DNS (Cluster) : affiche les métriques DNS sur un cluster ou une sélection de nœuds. (ID : 20925)
- DNS (Charge de travail) : affiche les métriques DNS pour la charge de travail spécifiée (par exemple, pods d’un DaemonSet ou d’un déploiement tel que CoreDNS). (ID : [20926] https://grafana.com/grafana/dashboards/20926-kubernetes-networking-dns-workload/)
- Dépôts (Charge de travail) : affiche les dépôts vers/depuis la charge de travail spécifiée (par exemple, les pods d’un déploiement ou d’un DaemonSet).(ID: 20927).
- Flux de pods (Espace de noms) : affiche les flux de paquets L4/L7 vers/depuis l’espace de noms spécifié (c’est-à-dire les pods dans l’espace de noms). (ID : 20928)
- Flux de pods (charge de travail) : affiche les flux de paquets L4/L7 vers/depuis la charge de travail spécifiée (par exemple, les pods d'un déploiement ou d'un DaemonSet). (ID : 20929)
Note
- Selon les paramètres de vos instances Prometheus/Grafana, certains panneaux de tableau de bord nécessitent des ajustements spécifiques pour afficher toutes les données.
- Cilium ne prend actuellement pas en charge les métriques/tableaux de bord DNS.
Nettoyer les ressources
Si vous ne prévoyez pas d’utiliser cette application, supprimez les autres ressources que vous avez créées dans cet article à l’aide de la commande az group delete.
az group delete --name $RESOURCE_GROUP
Étapes suivantes
Dans ce guide pratique, vous avez appris à installer et à activer l’Observabilité du réseau de conteneurs pour votre cluster AKS.
Pour plus d’informations sur les services avancés de mise en réseau de conteneurs pour Azure Kubernetes Service (AKS), consultez Que sont les services avancés de mise en réseau de conteneurs pour Azure Kubernetes Service (AKS) ?.
Pour plus d’informations sur Sécurité du réseau de conteneurs et ses fonctionnalités, consultez Qu’est-ce que Sécurité du réseau de conteneurs ?.