Condividi tramite


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

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.

Screenshot dell'area di lavoro di Monitoraggio di Azure.

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.

  1. Scaricare il file ConfigMap ama-metrics-settings-configmap.yaml e rinominarlo in configmap-controlplane.yaml.

  2. Impostare minimalingestionprofile = false e verificare che le destinazioni in default-scrape-settings-enabled cui si vuole eseguire lo scrape siano impostate su true. Le uniche destinazioni che è possibile specificare sono: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler, controlplane-kube-controller-manager e controlplane-etcd.

  3. 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.

  1. Scaricare il file ConfigMap ama-metrics-settings-configmap e rinominarlo in configmap-controlplane.yaml.

  2. Impostare minimalingestionprofile = true e verificare che le destinazioni in default-scrape-settings-enabled che si desidera scorporare siano impostate su true. Le uniche destinazioni che è possibile specificare sono: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler, controlplane-kube-controller-manager e controlplane-etcd.

  3. In default-targets-metrics-keep-list, specificare l'elenco delle metriche per le destinazioni true. 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

  1. Scaricare il file ConfigMap ama-metrics-settings-configmap e rinominarlo in configmap-controlplane.yaml.

  2. Impostare minimalingestionprofile = false e verificare che le destinazioni in default-scrape-settings-enabled che si vogliono scorporare siano impostate su true. Le uniche destinazioni che è possibile specificare sono controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler,controlplane-kube-controller-manager e controlplane-etcd.

  3. In default-targets-metrics-keep-list, specificare l'elenco delle metriche per le destinazioni true. 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?

Passaggi successivi

Dopo aver valutato questa funzionalità di anteprima, condividere i commenti e suggerimenti. Ci interessa ascoltare quello che pensano gli utenti.