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
- Les métriques du plan de contrôle (préversion) prennent uniquement en charge le service Azure Monitor géré pour Prometheus.
- Private Link n’est pas pris en charge.
- Vous ne pouvez personnaliser que l’ama-metrics-settings-config-map par défaut. Toutes les autres personnalisations ne sont pas prises en charge.
- Le cluster AKS doit utiliser l’authentification par identité managée.
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 commandeaz extension add
ouaz 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
Inscrivez l’indicateur de fonctionnalité
AzureMonitorMetricsControlPlanePreview
à l’aide de la commandeaz feature register
.az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Quelques minutes sont nécessaires pour que l’état s’affiche Registered (Inscrit).
Vérifiez l’état de l’inscription en utilisant la commande
az feature show
.az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
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 :
Dans le portail Azure, accédez à votre cluster AKS.
Sous Supervision, sélectionnez Insights.
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 :
Téléchargez le fichier ConfigMap ama-metrics-settings-configmap.yaml et renommez-le en
configmap-controlplane.yaml
.Définissez
minimalingestionprofile = false
.Sous
default-scrape-settings-enabled
, vérifiez que les cibles que vous souhaitez scraper sont définies surtrue
. Les seules cibles que vous pouvez spécifier sont :controlplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
etcontrolplane-etcd
.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 :
Téléchargez le fichier ConfigMap ama-metrics-settings-configmap et renommez-le en
configmap-controlplane.yaml
.Définissez
minimalingestionprofile = true
.Sous
default-scrape-settings-enabled
, vérifiez que les cibles que vous souhaitez scraper sont définies surtrue
. Les seules cibles que vous pouvez spécifier sont :controlplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
etcontrolplane-etcd
.Sous
default-targets-metrics-keep-list
, spécifiez la liste des métriques pour les cibles detrue
. Par exemple :controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
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
Téléchargez le fichier ConfigMap ama-metrics-settings-configmap et renommez-le en
configmap-controlplane.yaml
.Définissez
minimalingestionprofile = false
.Sous
default-scrape-settings-enabled
, vérifiez que les cibles que vous souhaitez scraper sont définies surtrue
. Les seules cibles que vous pouvez spécifier ici sontcontrolplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
etcontrolplane-etcd
.Sous
default-targets-metrics-keep-list
, spécifiez la liste des métriques pour les cibles detrue
. Par exemple :controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
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
.
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
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 commandeaz 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.
Azure Kubernetes Service