Partager via


Surveiller les métriques du plan de contrôle Azure Kubernetes Service (AKS) (préversion)

Cet article explique comment utiliser la fonctionnalité de métriques du plan de contrôle (préversion) dans Azure Kubernetes Service (AKS) pour collecter des métriques à partir du plan de contrôle et afficher les données de télémétrie dans Azure Monitor. La fonctionnalité de métriques du plan de contrôle est entièrement compatible avec Prometheus et Grafana et offre une meilleure visibilité sur la disponibilité et les performances des composants du plan de contrôle, tels que le serveur d’API, l’ETCD, le Planificateur, l’Autoscaler et le Gestionnaire de contrôleurs. Vous pouvez utiliser ces métriques pour optimiser l’observabilité globale et maintenir l’excellence opérationnelle de votre cluster AKS.

Conditions préalables et limitations

Installer ou mettre à jour l’extension aks-preview Azure CLI

Important

Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les préversions sont fournies « en l’état » et « en fonction des disponibilités », et sont exclues des contrats de niveau de service et de la garantie limitée. Les préversions AKS sont, dans la mesure du possible, partiellement couvertes par le service clientèle. Telles quelles, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :

  • Installez ou mettez à jour l’extension de l’interface de ligne de commande Azure aks-preview en utilisant la commande az extension add ou az extension update.

    # Install the aks-preview extension
    az extension add --name aks-preview
    
    # Update the aks-preview extension
    az extension update --name aks-preview
    

Inscrire l’indicateur de fonctionnalité AzureMonitorMetricsControlPlanePreview

  1. Inscrivez l’indicateur de fonctionnalité AzureMonitorMetricsControlPlanePreview à l’aide de la commande az feature register.

    az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
    

    Quelques minutes sont nécessaires pour que l’état s’affiche Registered (Inscrit).

  2. Vérifiez l’état de l’inscription en utilisant la commande az feature show.

    az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
    
  3. Quand l’état reflète Inscrit, actualisez l’inscription du fournisseur de ressources Microsoft.ContainerService à l’aide de la commande az provider register.

    az provider register --namespace "Microsoft.ContainerService"
    

Activer les métriques du plan de contrôle sur votre cluster AKS

Vous pouvez activer les métriques du plan de contrôle avec le service Azure Monitor géré Prometheus pendant la création d’un nouveau cluster ou la mise à jour d’un cluster existant.

Activer les métriques du plan de contrôle sur un nouveau cluster AKS

Pour collecter des métriques Prometheus à partir de votre cluster Kubernetes, consultez Activer Prometheus et Grafana pour les clusters Kubernetes et suivez les étapes sous l’onglet interface de ligne de commande pour un cluster AKS.

Activer les métriques du plan de contrôle sur un cluster AKS existant

  • Si votre cluster dispose déjà de l’extension Prometheus, mettez à jour le cluster pour vous assurer qu’il commence à collecter les métriques du plan de contrôle à l’aide de la commande az aks update.

    az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
    

Remarque

Contrairement aux métriques collectées à partir de nœuds de cluster, les métriques du plan de contrôle sont collectées par un composant qui ne fait pas partie du module complémentaire ama-metrics. L’activation de l’indicateur de fonctionnalité AzureMonitorMetricsControlPlanePreview et de l’extension Prometheus géré garantit que les métriques du plan de contrôle sont collectées. Après avoir activé la collecte de métriques, l’affichage des données dans l’espace de travail peut prendre plusieurs minutes.

Requête sur les métriques du plan de contrôle

Les métriques du plan de contrôle sont stockées dans un espace de travail Azure Monitor dans la région du cluster. Vous pouvez chercher des informations dans les métriques directement à partir de l’espace de travail ou via l’instance Azure gérée pour Grafana connectée à l’espace de travail.

Affichez les métriques du plan de contrôle dans l’espace de travail Azure Monitor en procédant comme suit :

  1. Dans le portail Azure, accédez à votre cluster AKS.

  2. Sous Supervision, sélectionnez Insights.

    Capture d’écran de l’espace de travail Azure Monitor.

Remarque

AKS fournit des modèles de tableau de bord pour vous aider à afficher et analyser vos données de télémétrie de plan de contrôle en temps réel. Si vous utilisez Azure géré pour Grafana pour visualiser les données, vous pouvez importer les tableaux de bord suivants :

Personnaliser les métriques du plan de contrôle

AKS inclut un ensemble préconfiguré de métriques à collecter et stocker pour chaque composant. API server et etcd sont activés par défaut. Vous pouvez personnaliser cette liste via le ama-settings-configmap.

Les cibles par défaut sont les suivantes :

controlplane-apiserver = true
controlplane-cluster-autoscaler = false
controlplane-kube-scheduler = false
controlplane-kube-controller-manager = false
controlplane-etcd = true

Toutes les ressources ConfigMaps doivent être appliqués à l’espace de noms kube-system pour n’importe quel cluster.

Pour plus d’informations sur les métriques de profil minimal-ingestion, consultez le Profil d’ingestion minimal pour les métriques du plan de contrôle dans l’extension Prometheus gérée.

Ingérer uniquement des métriques minimales pour les cibles par défaut

Lorsque vous définissez default-targets-metrics-keep-list.minimalIngestionProfile="true", seul le jeu minimal de métriques est ingéré pour chacune des cibles par défaut : controlplane-apiserver et controlplane-etcd.

Ingérer toutes les métriques de toutes les cibles

Procédez comme suit pour collecter toutes les métriques de toutes les cibles sur le cluster :

  1. Téléchargez le fichier ConfigMap ama-metrics-settings-configmap.yaml et renommez-le en configmap-controlplane.yaml.

  2. Définissez minimalingestionprofile = false.

  3. Sous default-scrape-settings-enabled, vérifiez que les cibles que vous souhaitez scraper sont définies sur true. Les seules cibles que vous pouvez spécifier sont : controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler, controlplane-kube-controller-manageret controlplane-etcd.

  4. Appliquez la ConfigMap avec la commande kubectl apply.

    kubectl apply -f configmap-controlplane.yaml
    

    Une fois la configuration appliquée, plusieurs minutes sont nécessaires avant que les métriques des cibles spécifiées extraites du plan de contrôle apparaissent dans l’espace de travail Azure Monitor.

Ingérer quelques autres métriques en plus des métriques minimales

minimal ingestion profile est un paramètre qui permet de réduire le volume d’ingestion de métriques, car seules les métriques utilisées par les tableaux de bord par défaut, les règles d’enregistrement par défaut et les alertes par défaut sont collectées. Pour personnaliser ce paramètre, procédez comme suit :

  1. Téléchargez le fichier ConfigMap ama-metrics-settings-configmap et renommez-le en configmap-controlplane.yaml.

  2. Définissez minimalingestionprofile = true.

  3. Sous default-scrape-settings-enabled, vérifiez que les cibles que vous souhaitez scraper sont définies sur true. Les seules cibles que vous pouvez spécifier sont : controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler, controlplane-kube-controller-manageret controlplane-etcd.

  4. Sous default-targets-metrics-keep-list, spécifiez la liste des métriques pour les cibles de true. Par exemple :

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  5. Appliquez la ConfigMap avec la commande kubectl apply.

    kubectl apply -f configmap-controlplane.yaml
    

    Une fois la configuration appliquée, plusieurs minutes sont nécessaires avant que les métriques des cibles spécifiées extraites du plan de contrôle apparaissent dans l’espace de travail Azure Monitor.

Ingérer uniquement des métriques spécifiques à partir de certaines cibles

  1. Téléchargez le fichier ConfigMap ama-metrics-settings-configmap et renommez-le en configmap-controlplane.yaml.

  2. Définissez minimalingestionprofile = false.

  3. Sous default-scrape-settings-enabled, vérifiez que les cibles que vous souhaitez scraper sont définies sur true. Les seules cibles que vous pouvez spécifier ici sont controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler,controlplane-kube-controller-manageret controlplane-etcd.

  4. Sous default-targets-metrics-keep-list, spécifiez la liste des métriques pour les cibles de true. Par exemple :

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  5. Appliquez la ConfigMap avec la commande kubectl apply.

    kubectl apply -f configmap-controlplane.yaml
    

    Une fois la configuration appliquée, plusieurs minutes sont nécessaires avant que les métriques des cibles spécifiées extraites du plan de contrôle apparaissent dans l’espace de travail Azure Monitor.

Résoudre les problèmes liés aux métriques du plan de contrôle

Veillez à vérifier que l’indicateur de fonctionnalité AzureMonitorMetricsControlPlanePreview est activé et que les pods ama-metrics s’exécutent.

Remarque

Les méthodes de résolution des problèmes pour le service Azure géré pour Prometheus ne se traduisent pas directement ici, car les composants qui scrapent le plan de contrôle ne sont pas présents dans l’extension gérée pour Prometheus.

Mise en forme ConfigMap

Vérifiez que vous utilisez une mise en forme appropriée dans la ressource ConfigMap et que les champs, en particulier default-targets-metrics-keep-list, minimal-ingestion-profile et default-scrape-settings-enabled, sont correctement renseignés avec leurs valeurs prévues.

Isoler le plan de contrôle du plan de données

Commencez par définir certaines des métriques liées au nœud sur true et vérifiez que les métriques sont transférées à l’espace de travail. Cela permet de déterminer si le problème est spécifique aux métriques du plan de contrôle de scraping.

Événements ingérés

Une fois les modifications appliquées, vous pouvez ouvrir Metrics Explorer à partir de la page Vue d’ensemble d’Azure Monitor ou de la section Surveillance du cluster sélectionné et rechercher une augmentation ou une diminution du nombre d’événements ingérés par minute. Cela devrait vous aider à déterminer s’il manque une métrique spécifique ou si toutes les métriques sont manquantes.

Aucune métrique spécifique n’est exposée

Il existe des cas où les métriques sont documentées, mais ne sont pas exposées à partir de la cible et ne sont pas transférées à l’espace de travail Azure Monitor. Dans ce cas, il est nécessaire de vérifier que d’autres métriques sont transférées à l’espace de travail.

Aucun accès à l’espace de travail Azure Monitor

Lorsque vous activez le module complémentaire, il est possible que vous spécifiiez un espace de travail existant auquel vous n’avez pas accès. Dans ce cas, il semblerait que les métriques ne sont ni collectées ni transférées. Veillez à créer un espace de travail lors de l’activation du module complémentaire ou lors de la création du cluster.

Désactiver les métriques du plan de contrôle sur votre cluster AKS

Vous pouvez désactiver les métriques du plan de contrôle à tout moment en désactivant l’extension gérée pour Prometheus managé et en annulant l’inscription de l’indicateur de fonctionnalité AzureMonitorMetricsControlPlanePreview.

  1. Supprimez le l’extension de métriques qui scrape les métriques Prometheus à l’aide de la commande az aks update.

    az aks update --disable-azure-monitor-metrics --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
    
  2. Désactivez le scraping des métriques du plan de contrôle sur le cluster AKS en annulant l’inscription de l’indicateur de fonctionnalité AzureMonitorMetricsControlPlanePreview en utilisant la commande az feature unregister.

    az feature unregister "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
    

Forum aux questions

Puis-je scraper les métriques du plan de contrôle avec Prometheus auto-hébergé ?

Non, vous ne pouvez pas scraper les métriques du plan de contrôle avec Prometheus auto-hébergé. Prometheus auto-hébergé peut uniquement scraper l’instance unique en fonction de l’équilibreur de charge. Les métriques ne sont pas fiables, car il existe souvent plusieurs réplicas des métriques du plan de contrôle uniquement visibles via Prometheus géré

Pourquoi l’agent utilisateur n’est-il pas disponible via les métriques du plan de contrôle ?

Les métriques du plan de contrôle dans Kubernetes ne comportent pas l’agent utilisateur. L’agent utilisateur est disponible uniquement via les journaux d’activité du plan de contrôle disponibles dans les paramètres de diagnostic.

Étapes suivantes

Après avoir évalué cette fonctionnalité d’évaluation, partager vos commentaires. Votre avis nous intéresse.

Pour en savoir plus sur les métriques du plan de contrôle AKS, consultez la liste des métriques par défaut pour le plan de contrôle AKS.