Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come monitorare il piano di controllo del servizio Azure Kubernetes usando le metriche del piano di controllo in Monitoraggio di Azure.
Il servizio Azure Kubernetes supporta un subset di metriche del piano di controllo gratuite tramite le metriche della piattaforma di Monitoraggio di Azure. La funzionalità metriche del piano di controllo offre visibilità sulla disponibilità e sulle prestazioni dei componenti critici del piano di controllo come l'API server, etcd, il scheduler, l'autoscaler e il controller manager in AKS. La funzionalità è anche completamente compatibile con il servizio gestito per Prometheus e Grafana con gestione Azure. È possibile usare queste metriche per ottimizzare l'osservabilità complessiva e mantenere l'eccellenza operativa per il cluster del servizio Azure Kubernetes.
Metriche della piattaforma del piano di controllo
AKS offre alcune metriche gratuite del piano di controllo per il monitoraggio del server API e di etcd. Queste metriche vengono raccolte automaticamente per tutti i cluster del servizio Azure Kubernetes senza costi. È possibile analizzare le metriche usando Esplora metriche nel portale di Azure. È anche possibile creare avvisi basati sulle metriche usando i dati delle metriche.
Per visualizzare l'elenco completo delle metriche della piattaforma del piano di controllo supportate, vedere le informazioni di riferimento sul monitoraggio del servizio Azure Kubernetes.
Prerequisiti e limitazioni
- La funzionalità metriche del piano di controllo supporta solo il servizio gestito per Prometheus in Monitoraggio di Azure.
- Il collegamento privato di Azure non è supportato.
- È possibile personalizzare solo il file configmap predefinito
ama-metrics-settings-configmap.yaml. Nessun'altra personalizzazione è supportata. - Il cluster del servizio Azure Kubernetes deve usare l'autenticazione dell'identità gestita.
Abilitare le metriche del piano di controllo su un cluster di Azure Kubernetes Service (AKS)
Abilitare le metriche del piano di controllo usando il servizio gestito per il componente aggiuntivo Prometheus quando si crea un nuovo cluster o si aggiorna un cluster esistente.
Note
A differenza delle metriche raccolte dai nodi del cluster, le metriche del piano di controllo vengono raccolte da un componente che non fa parte del ama-metrics componente aggiuntivo. L'abilitazione delle metriche del piano di controllo (ad esempio, usando l'opzione --enable-control-plane-metrics ) insieme al servizio gestito per il componente aggiuntivo Prometheus garantisce che vengano raccolte le metriche del piano di controllo. I cluster AKS che erano stati precedentemente abilitati per le metriche del piano di controllo durante la fase di anteprima hanno automaticamente --enable-control-plane-metrics abilitato e continuano a raccogliere le metriche del piano di controllo. Dopo aver abilitato la raccolta delle metriche, possono essere necessari alcuni minuti prima che i dati vengano visualizzati nell'area di lavoro.
Nuovo cluster AKS
Usa il comando az aks create per abilitare la raccolta delle metriche del piano di controllo tramite il servizio gestito per Prometheus. Per informazioni su come raccogliere le metriche gestite di Prometheus dal cluster AKS, vedere Abilitare Prometheus e Grafana per i cluster AKS.
az aks create --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --enable-control-plane-metrics --enable-azure-monitor-metrics
Cluster del servizio Azure Kubernetes esistente
Se il cluster dispone già del servizio gestito per il componente aggiuntivo Prometheus, aggiornare il cluster per assicurarsi che raccoglie le metriche del piano di controllo usando il az aks update comando :
az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --enable-control-plane-metrics
Eseguire query sulle metriche del piano di controllo
Le metriche del piano di controllo vengono archiviate in un'area di lavoro di Monitoraggio di Azure nell'area del cluster. È possibile eseguire query sulle metriche direttamente nell'area di lavoro o usando l'istanza di Grafana gestita di Azure connessa all'area di lavoro.
Nel portale di Azure, vai alla risorsa del cluster AKS.
Nel menu a sinistra, selezionare Monitor>Monitor Settings.
Passare all'area di lavoro di Monitoraggio di Azure collegata al cluster.
Nell'area di lavoro monitoraggio di Azure, in Prometheus gestito, eseguire una query sulle metriche usando Prometheus Explorer.
Note
Il servizio Azure Kubernetes fornisce modelli di dashboard che consentono di visualizzare e analizzare i dati di telemetria del piano di controllo in tempo reale. Se si usa Grafana gestito di Azure per visualizzare i dati, è possibile importare i dashboard seguenti:
Personalizzare le metriche del piano di controllo
Il servizio Azure Kubernetes include un set preconfigurato di metriche da raccogliere e archiviare per ogni componente. Le metriche per il server API e etcd vengono raccolte per impostazione predefinita. È possibile personalizzare l'elenco delle metriche raccolte modificando il ama-metrics-settings-configmap.yaml file configmap.
Le destinazioni predefinite includono i valori seguenti:
controlplane-metrics: |-
default-targets-scrape-enabled: |-
apiserver = true
cluster-autoscaler = false
node-auto-provisioning = false
kube-scheduler = false
kube-controller-manager = false
etcd = true
Tutti gli oggetti configmap devono essere applicati allo spazio dei nomi kube-system per qualsiasi cluster.
Note
Modifica dello schema v2: la configurazione per le destinazioni è ora suddivisa in metriche del cluster e metriche del piano di controllo, consentendo un controllo separato del volume di inserimento per le destinazioni a livello di cluster e per le destinazioni del piano di controllo. Se si esegue la migrazione dalla versione 1, sostituire le configurazioni nelle sezioni corrispondenti all'interno di cluster-metrics e controlplane-metrics, e tenere presente quanto segue:
- Modificare il nome della chiave da 'default-scrape-settings-enabled' a 'default-targets-scrape-enabled'
- Per le destinazioni all'interno della sezione controlplane-metrics, eliminare il prefisso "controlplane-"
- Modificare minimalingestionprofile = true nell'elemento keep-list in minimal-ingestion-profile: |- / enabled = true come sezione specifica
Personalizzare un profilo di acquisizione
È possibile personalizzare un file di inserimento per le metriche raccolte. Per ulteriori informazioni, vedere Profilo di ingestione minimo per le metriche del piano di controllo nel servizio gestito per Prometheus.
Inserire solo metriche minime da destinazioni predefinite
- Impostare
controlplane-metrics.minimal-ingestion-profilesutrue, in modo che inserisca solo il set minimo di metriche per ognuna delle destinazioni predefinite:controlplane-apiserverecontrolplane-etcd.
Inserire tutte le metriche da tutte le destinazioni
Scaricare il
ama-metrics-settings-configmap.yamlfile configmap.Rinomina il file configmap
configmap-controlplane.yaml.Impostare
controlplane-metrics.minimal-ingestion-profilesufalse.In
controlplane-metrics.default-targets-scrape-enabled, verificare che le destinazioni che si vogliono scorporare siano impostate sutrue.Gli obiettivi che è possibile impostare sono:
apiservercluster-autoscalernode-auto-provisioningkube-schedulerkube-controller-manageretcd
Applicare il file configmap usando il
kubectl applycomando :kubectl apply -f configmap-controlplane.yaml
Dopo l'applicazione della configurazione, sono necessari alcuni minuti prima che le metriche delle destinazioni specificate scorporate dal piano di controllo vengano visualizzate nell'area di lavoro monitoraggio di Azure.
Inserire più delle metriche minime
L'uso dell'impostazione controlplane-metrics.minimal-ingestion-profile consente di ridurre il volume di inserimento delle metriche. Se è impostato su true, vengono raccolte solo le regole di registrazione predefinite, gli avvisi predefiniti e le metriche visualizzate nei dashboard predefiniti.
Scaricare il
ama-metrics-settings-configmap.yamlfile configmap.Rinomina il file configmap
configmap-controlplane.yaml.Impostare
controlplane-metrics.minimal-ingestion-profilesutrue.In
controlplane-metrics.default-targets-scrape-enabled, verificare che le destinazioni che si vogliono scorporare siano impostate sutrue.Gli obiettivi che è possibile impostare sono:
apiservercluster-autoscalernode-auto-provisioningkube-schedulerkube-controller-manageretcd
In
controlplane-metrics.default-targets-metrics-keep-list, specificare l'elenco delle metriche per le destinazionitrue.Ad esempio:
apiserver= "apiserver_admission_webhook_admission_duration_seconds|apiserver_longrunning_requests"Applicare il file configmap usando il
kubectl applycomando :kubectl apply -f configmap-controlplane.yaml
Dopo l'applicazione della configurazione, sono necessari alcuni minuti prima che le metriche delle destinazioni specificate scorporate dal piano di controllo vengano visualizzate nell'area di lavoro monitoraggio di Azure.
Inserire metriche specifiche da destinazioni specifiche
Scaricare il
ama-metrics-settings-configmap.yamlfile configmap.Rinomina il file configmap
configmap-controlplane.yaml.Impostare
controlplane-metrics.minimal-ingestion-profilesufalse.In
controlplane-metrics.default-targets-scrape-enabled, verificare che le destinazioni da eliminare siano impostate sutrue.Gli obiettivi che è possibile impostare sono:
apiservercluster-autoscalernode-auto-provisioningkube-schedulerkube-controller-manageretcd
In
controlplane-metrics.default-targets-metrics-keep-list, specificare l'elenco delle metriche per le destinazionitrue.Ad esempio:
apiserver= "apiserver_admission_webhook_admission_duration_seconds|apiserver_longrunning_requests"Applicare il file configmap:
kubectl apply -f configmap-controlplane.yaml
Dopo l'applicazione della configurazione, sono necessari alcuni minuti prima che le metriche delle destinazioni specificate scorporate dal piano di controllo vengano visualizzate nell'area di lavoro monitoraggio di Azure.
Risolvere i problemi relativi alle metriche del piano di controllo
Assicurarsi di abilitare il flag --enable-control-plane-metrics e che i pod ama-metrics siano in esecuzione.
Note
I metodi di risoluzione dei problemi per il servizio gestito per Prometheus non si applicano direttamente in questo scenario. I componenti che eliminano il piano di controllo non sono inclusi nel servizio gestito per il componente aggiuntivo Prometheus.
Formattazione del file configmap: assicurarsi di usare la formattazione corretta nel file configmap. Verificare che i campi
controlplane-metrics.default-targets-metrics-keep-list,controlplane-metrics.minimal-ingestion-profileecontrolplane-metrics.default-targets-scrape-enabledaltri campi siano popolati correttamente con i relativi valori previsti.Isolare il piano di controllo dal piano dati: iniziare impostando alcune delle metriche correlate al nodo su
truee quindi verificare che le metriche vengano inoltrate all'area di lavoro. Il completamento di questi passaggi consente di determinare se un problema è specifico per la raschiatura delle metriche del piano di controllo.Modifica del numero di eventi inseriti: dopo aver applicato le modifiche, è possibile aprire Esplora metriche nel portale di Azure. Andare al riquadro panoramica di Monitoraggio di Azure per il cluster o andare alla sezione Monitoraggio del cluster selezionato. Verificare la presenza di un aumento o di una diminuzione del numero di eventi inseriti al minuto. Queste informazioni consentono di determinare se manca una metrica specifica o se mancano tutte le metriche.
Una metrica specifica non è esposta: in alcuni scenari viene documentata una metrica, ma non è esposta dalla destinazione e non viene inoltrata all'area di lavoro monitoraggio di Azure. In questo caso, è necessario verificare che altre metriche vengano inoltrate all'area di lavoro.
Modifica dello schema v2: la configurazione per le destinazioni nello schema v2 della configmap è ora disponibile separatamente in metriche del cluster e metriche del piano di controllo, consentendo un controllo separato del volume di inserimento dei dati per le destinazioni a livello di cluster e le destinazioni del piano di controllo. Se stai migrando dalla versione 1, sostituisci le configurazioni nelle sezioni corrispondenti all'interno di "cluster-metrics" e "controlplane-metrics". Nota anche che il nome della chiave viene modificato da "default-scrape-settings-enabled" a "default-targets-scrape-enabled".
Note
Se si vuole raccogliere la
apiserver_request_duration_secondsmetrica o un'altra metrica del bucket, è necessario impostare l'intera serie nella famiglia di istogrammi:apiserver = "apiserver_request_duration_seconds_bucket|apiserver_request_duration_seconds_sum|apiserver_request_duration_seconds_count"Nessun accesso all'area di lavoro di Monitoraggio di Azure: quando si abilita il componente aggiuntivo, è possibile specificare un'area di lavoro esistente a cui non è possibile accedere. In questo scenario, sembra che le metriche non vengano raccolte e inoltrate. Assicurarsi di creare una nuova area di lavoro da usare per raccogliere le metriche quando si abilita il componente aggiuntivo o quando si crea il cluster.
Disabilitare le metriche del piano di controllo nel cluster del servizio Azure Kubernetes
È possibile disabilitare le metriche del piano di controllo in qualsiasi momento usando il --disable-control-plane-metrics flag o disabilitando il servizio gestito per il componente aggiuntivo Prometheus.
Per disabilitare lo scorporo delle metriche del piano di controllo nel cluster AKS, usare il comando
az aks update:az aks update --disable-control-plane-metrics --name $CLUSTER_NAME --resource-group $RESOURCE_GROUPRimuovere il componente aggiuntivo metriche che scorpora le metriche di Prometheus usando il comando
az aks update. Si noti che la disattivazione delle metriche di Prometheus disabilita la raccolta delle metriche da altri target nel cluster AKS.az aks update --disable-azure-monitor-metrics --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Domande frequenti
È possibile estrarre le metriche del piano di controllo usando Prometheus ospitato internamente?
No. Attualmente, non è possibile raschiare le metriche del piano di controllo usando Prometheus self-hosted. Prometheus self-hosted può raschiare solo una singola istanza, a seconda del servizio di bilanciamento del carico, in modo che le metriche non siano affidabili. Spesso, più repliche delle metriche del piano di controllo sono visibili solo tramite il servizio gestito per Prometheus.
Perché l'agente utente non è disponibile nelle metriche del piano di controllo?
In AKS, le metriche del piano di controllo non hanno l'agente utente. L'agente utente è disponibile solo tramite i log del piano di controllo a cui si accede nelle impostazioni di diagnostica.