Monitorare le metriche del piano di controllo del servizio Azure Kubernetes (anteprima)
L'integrità del piano di controllo del servizio Azure Kubernetes è fondamentale per le prestazioni e l'affidabilità del cluster. Le metriche del piano di controllo (anteprima) offrono maggiore visibilità sulla disponibilità e sulle prestazioni, consentendo di ottimizzare l'osservabilità complessiva e mantenere l'eccellenza operativa. Queste metriche sono completamente compatibili con Prometheus e Grafana e possono essere personalizzate solo per archiviare ciò che si considera necessario. Con queste nuove metriche, è possibile raccogliere tutte le metriche dal server API, ETCD, Utilità di pianificazione, Scalabilità automatica e gestione controller.
Questo articolo illustra questa nuova funzionalità, come implementarla e come osservare i dati di telemetria raccolti.
Prerequisiti e limitazioni
- Supporta solo servizio gestito di Monitoraggio di Azure per Prometheus.
- Il collegamento privato non è supportato.
- È possibile personalizzare solo ama-metrics-settings-config-map predefinita. Tutte le altre personalizzazioni non sono supportate.
- Il cluster deve usare l’autenticazione dell'identità gestita.
Installare o aggiornare l'estensione dell'interfaccia della riga di comando di Azure aks-preview
Importante
Le funzionalità di anteprima del servizio Azure Kubernetes sono disponibili in modalità self-service e di consenso esplicito. Le anteprime vengono fornite “così come sono” e “come disponibili” e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto clienti con la massima diligenza possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:
Installare l'estensione dell'interfaccia della riga di comando di Azure aks-preview
usando il comando az extension add
.
az extension add --name aks-preview
Se è necessario aggiornare la versione dell'estensione, è possibile farlo usando il comando az extension update
.
az extension update --name aks-preview
Registrare il flag di funzionalità 'AzureMonitorMetricsControlPlanePreview'
Registra il flag di funzionalità AzureMonitorMetricsControlPlanePreview
usando il comando az feature register, come illustrato nell'esempio seguente:
az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Sono necessari alcuni minuti per visualizzare lo stato Registered. Verificare lo stato della registrazione usando il comando az feature show:
az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Quando lo stato diventa Registrato, aggiorna la registrazione del provider di risorse Microsoft.ContainerService usando il comando az provider register:
az provider register --namespace "Microsoft.ContainerService"
Abilitare le metriche del piano di controllo nel cluster del servizio Azure Kubernetes
È possibile abilitare le metriche del piano di controllo con il servizio gestito di Monitoraggio di Azure per il componente aggiuntivo Prometheus durante la creazione del cluster o per un cluster esistente. Per raccogliere le metriche di Prometheus dal cluster Kubernetes, vedere Abilitare Prometheus e Grafana per cluster Kubernetes e seguire i passaggi nella scheda dell'interfaccia della riga di comando per un cluster del servizio Azure Kubernetes. Nella riga di comando assicurarsi di includere i parametri --generate-ssh-keys
e --enable-managed-identity
.
Se il cluster dispone già del componente aggiuntivo Prometheus distribuito, è sufficiente eseguire un oggetto az aks update
per assicurarsi che gli aggiornamenti del cluster inizino a raccogliere le metriche del piano di controllo.
az aks update -n <cluster-name> -g <resource-group>
Nota
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 componente aggiuntivo ama-metrics. L'abilitazione del flag di funzionalità AzureMonitorMetricsControlPlanePreview
e del componente aggiuntivo prometheus gestito garantisce la raccolta delle 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.
Esecuzione di 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 direttamente dall'area di lavoro o tramite l'istanza di Grafana gestita di Azure connessa all'area di lavoro. Per trovare l'area di lavoro di Monitoraggio di Azure associata al cluster, nel riquadro sinistro del cluster del servizio Azure Kubernetes selezionato passare alla sezione Monitoraggio e selezionare Insights. Nella pagina Informazioni dettagliate contenitore per il cluster selezionare impostazioni di monitoraggio.
Se si usa Grafana gestito di Azure per visualizzare i dati, è possibile importare i dashboard seguenti. 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.
Personalizzare le metriche del piano di controllo
Per impostazione predefinita, il servizio Azure Kubernetes include un set preconfigurato di metriche da raccogliere e archiviare per ogni componente. API server
e etcd
sono abilitati per impostazione predefinita. Questo elenco può essere personalizzato tramite ama-settings-configmap. L'elenco delle metriche del profilo di minimal-ingestion
è disponibile qui.
Di seguito sono elencate le destinazioni predefinite:
controlplane-apiserver = true
controlplane-cluster-autoscaler = false
controlplane-kube-scheduler = false
controlplane-kube-controller-manager = false
controlplane-etcd = true
Le varie opzioni sono simili a Prometheus gestito di Azure elencate qui.
Tutti gli oggetti ConfigMap devono essere applicati allo spazio dei nomi kube-system
per qualsiasi cluster.
Inserire solo metriche minime per le destinazioni predefinite
Si tratta del comportamento predefinito con l'impostazione default-targets-metrics-keep-list.minimalIngestionProfile="true"
. Solo le metriche elencate più avanti in questo articolo vengono inserite per ognuna delle destinazioni predefinite, che in questo caso è controlplane-apiserver
e controlplane-etcd
.
Inserire tutte le metriche da tutte le destinazioni
Eseguire la procedura seguente per raccogliere tutte le metriche da tutte le destinazioni nel cluster.
Scaricare il file ConfigMap ama-metrics-settings-configmap.yaml e rinominarlo in
configmap-controlplane.yaml
.Impostare
minimalingestionprofile = false
e verificare che le destinazioni indefault-scrape-settings-enabled
cui si vuole eseguire lo scrape siano impostate sutrue
. Le uniche destinazioni che è possibile specificare sono:controlplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
econtrolplane-etcd
.Applicare ConfigMap eseguendo il comando kubectl apply .
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 delle altre metriche oltre alle metriche minime
Minimal ingestion profile
è un'impostazione che consente di ridurre il volume di inserimento delle metriche, in quanto vengono raccolte solo le metriche usate dai dashboard predefiniti, le regole di registrazione predefinite e gli avvisi predefiniti. Per personalizzare questo comportamento, seguire questa procedura.
Scaricare il file ConfigMap ama-metrics-settings-configmap e rinominarlo in
configmap-controlplane.yaml
.Impostare
minimalingestionprofile = true
e verificare che le destinazioni indefault-scrape-settings-enabled
che si desidera scorporare siano impostate sutrue
. Le uniche destinazioni che è possibile specificare sono:controlplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
econtrolplane-etcd
.In
default-targets-metrics-keep-list
, specificare l'elenco delle metriche per le destinazionitrue
. ad esempio:controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
Applicare ConfigMap eseguendo il comando kubectl apply .
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 solo metriche specifiche da alcune destinazioni
Scaricare il file ConfigMap ama-metrics-settings-configmap e rinominarlo in
configmap-controlplane.yaml
.Impostare
minimalingestionprofile = false
e verificare che le destinazioni indefault-scrape-settings-enabled
che si vogliono scorporare siano impostate sutrue
. Le uniche destinazioni che è possibile specificare sonocontrolplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
econtrolplane-etcd
.In
default-targets-metrics-keep-list
, specificare l'elenco delle metriche per le destinazionitrue
. ad esempio:controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
Applicare ConfigMap eseguendo il comando kubectl apply .
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 verificare che il flag di funzionalità AzureMonitorMetricsControlPlanePreview
sia abilitato e che i pod ama-metrics
siano in esecuzione.
Nota
I metodi di risoluzione dei problemi per Prometheus del servizio gestito di Azure non si tradurranno direttamente qui perché i componenti che eliminano il piano di controllo non sono presenti nel componente aggiuntivo prometheus gestito.
Formattazione o errori di ConfigMap
Assicurarsi di controllare la formattazione di ConfigMap e se i campi sono popolati correttamente con i valori previsti. In particolare default-targets-metrics-keep-list
, minimal-ingestion-profile
e default-scrape-settings-enabled
.
Isolare il piano di controllo dal problema del piano dati
Per iniziare, impostare alcune metriche correlate al nodo su true
e verificare che le metriche vengano inoltrate all'area di lavoro. Ciò consente di determinare se il problema è specifico per lo scorporo delle metriche del piano di controllo.
Eventi inseriti
Dopo aver applicato le modifiche, è possibile aprire Esplora metriche dalla pagina di panoramica di Monitoraggio di Azure o dalla sezione Monitoraggio del cluster selezionato. Nel portale di Azure selezionare Metriche. Verificare la presenza di un aumento o una diminuzione del numero di eventi inseriti al minuto. Dovrebbe aiutare a determinare se manca una metrica specifica o se mancano tutte le metriche.
Metrica specifica non esposta
In alcuni casi le metriche sono documentate, ma non esposte dalla destinazione e non sono state inoltrate all'area di lavoro di Monitoraggio di Azure. In questo caso, è necessario verificare che altre metriche vengano inoltrate all'area di lavoro.
Nessun accesso all'area di lavoro di Monitoraggio di Azure
Quando si abilita il componente aggiuntivo, potrebbe essere stata specificata un'area di lavoro esistente a cui non si ha accesso. In tal caso, potrebbe sembrare che le metriche non vengano raccolte e inoltrate. Assicurarsi di creare una nuova area di lavoro durante l'abilitazione del componente aggiuntivo o durante la creazione del 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, sia disabilitando il flag di funzionalità che disabilitando Prometheus gestito, oppure eliminando il cluster del servizio Azure Kubernetes.
Flag di anteprima abilitato dopo la configurazione di Prometheus gestito
Se il flag di anteprima (AzureMonitorMetricsControlPlanePreview
) è stato abilitato in un cluster Prometheus gestito esistente, sarà necessario forzare un aggiornamento per il cluster per generare metriche del piano di controllo
È possibile eseguire un aggiornamento del servizio Azure Kubernetes per assicurarsi che gli aggiornamenti del cluster inizino a raccogliere le metriche del piano di controllo.
az aks update -n <cluster-name> -g <resource-group>
Nota
Questa azione non rimuove i dati esistenti archiviati nell'area di lavoro di Monitoraggio di Azure.
Eseguire il comando seguente per rimuovere il componente aggiuntivo metriche che elimina le metriche di Prometheus.
az aks update --disable-azure-monitor-metrics -n <cluster-name> -g <cluster-resource-group>
Eseguire il comando seguente per disabilitare lo scarto delle metriche del piano di controllo nel cluster del servizio Azure Kubernetes annullando la registrazione del flag di funzionalità AzureMonitorMetricsControlPlanePreview
usando il comando az feature unregister.
az feature unregister "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Domande frequenti
Queste metriche possono essere raschiate con prometheus self-hosted?
- Le metriche del piano di controllo attualmente non possono essere raschiate con prometheus self-hosted. Il prometheus self-hosted sarà in grado di raschiare la singola istanza a seconda del servizio di bilanciamento del carico. Queste metriche sono noteccurate perché spesso sono presenti più repliche delle metriche del piano di controllo che saranno visibili solo tramite Managed Prometheus
Perché l'agente utente non è disponibile tramite le metriche del piano di controllo?
- Le metriche del piano di controllo in Kubernetes non hanno l'agente utente. L'agente utente è disponibile solo tramite i log del piano di controllo disponibili tramite le impostazioni di diagnostica
Passaggi successivi
Dopo aver valutato questa funzionalità di anteprima, condividere i commenti e suggerimenti. Ci interessa ascoltare quello che pensano gli utenti.
- Altre informazioni sull'elenco delle metriche predefinite per il piano di controllo del servizio Azure Kubernetes.