Dela via


Övervaka kontrollplansmått för Azure Kubernetes Service (AKS) (förhandsversion)

Den här artikeln visar hur du använder funktionen för kontrollplansmått (förhandsversion) i Azure Kubernetes Service (AKS) för att samla in mått från kontrollplanet och visa telemetrin i Azure Monitor. Kontrollplanets måttfunktion är helt kompatibel med Prometheus och Grafana och ger bättre insyn i tillgängligheten och prestandan för kontrollplanskomponenterna, till exempel API-servern, ETCD, Scheduler, Autoscaler och kontrollanthanteraren. Du kan använda dessa mått för att maximera den övergripande observerbarheten och upprätthålla driftskvalitet för ditt AKS-kluster.

Förutsättningar och begränsningar

Installera eller uppdatera aks-preview Azure CLI-tillägget

Viktigt!

AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och anmäl dig. Förhandsversioner tillhandahålls "som är" och "som tillgängliga", och de undantas från serviceavtalen och den begränsade garantin. AKS-förhandsversioner omfattas delvis av kundsupport på bästa sätt. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:

  • Installera eller uppdatera aks-preview Azure CLI-tillägget med hjälp av az extension add kommandot eller 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
    

Registrera funktionsflaggan AzureMonitorMetricsControlPlanePreview

  1. Registrera funktionsflaggan AzureMonitorMetricsControlPlanePreview az feature register med kommandot .

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

    Det tar några minuter för statusen att visa Registrerad.

  2. Kontrollera registreringsstatusen az feature show med kommandot .

    az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
    
  3. När statusen visar Registrerad uppdaterar du registreringen av resursprovidern Microsoft.ContainerService med hjälp av az provider register kommandot .

    az provider register --namespace "Microsoft.ContainerService"
    

Aktivera kontrollplansmått i ditt AKS-kluster

Du kan aktivera kontrollplansmått med azure monitor-tjänsten för Prometheus-tillägget när du skapar ett nytt kluster eller uppdaterar ett befintligt kluster.

Aktivera kontrollplansmått i ett nytt AKS-kluster

Information om hur du samlar in Prometheus-mått från kubernetes-klustret finns i Aktivera Prometheus och Grafana för AKS-kluster och följ stegen på fliken CLI för ett AKS-kluster.

Aktivera kontrollplansmått i ett befintligt AKS-kluster

  • Om klustret redan har Prometheus-tillägget uppdaterar du klustret så att det börjar samla in kontrollplansmått med kommandot az aks update .

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

Kommentar

Till skillnad från de mått som samlas in från klusternoder samlas kontrollplansmått in av en komponent som inte ingår i ama-måtttillägget. Genom att aktivera funktionsflaggan AzureMonitorMetricsControlPlanePreview och det hanterade Prometheus-tillägget kan du se till att kontrollplansmått samlas in. När du har aktiverat måttinsamling kan det ta flera minuter innan data visas på arbetsytan.

Frågekontrollplansmått

Kontrollplansmått lagras på en Azure Monitor-arbetsyta i klustrets region. Du kan fråga måtten direkt från arbetsytan eller via den Azure-hanterade Grafana-instansen som är ansluten till arbetsytan.

Visa kontrollplansmåtten på Azure Monitor-arbetsytan med hjälp av följande steg:

  1. I Azure-portalen navigerar du till ditt AKS-kluster.

  2. Under Övervakning väljer du Insikter.

    Skärmbild av Azure Monitor-arbetsytan.

Kommentar

AKS innehåller instrumentpanelsmallar som hjälper dig att visa och analysera telemetridata för kontrollplanet i realtid. Om du använder Azure-hanterad Grafana för att visualisera data kan du importera följande instrumentpaneler:

Anpassa kontrollplansmått

AKS innehåller en förkonfigurerad uppsättning mått för att samla in och lagra för varje komponent. API server och etcd är aktiverade som standard. Du kan anpassa den här listan via ama-settings-configmap.

Standardmålen omfattar följande:

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

Alla ConfigMaps ska tillämpas på kube-system namnområdet för alla kluster.

Mer information om minimal-ingestion profilmått finns i Minimal inmatningsprofil för kontrollplansmått i hanterad Prometheus.

Mata endast in minimala mått från standardmål

När du anger default-targets-metrics-keep-list.minimalIngestionProfile="true"matas endast den minimala uppsättningen mått in för vart och ett av standardmålen: controlplane-apiserver och controlplane-etcd.

Mata in alla mått från alla mål

Samla in alla mått från alla mål i klustret med hjälp av följande steg:

  1. Ladda ned ConfigMap-filen ama-metrics-settings-configmap.yaml och byt namn på den till configmap-controlplane.yaml.

  2. Ange minimalingestionprofile = false.

  3. Under default-scrape-settings-enabledkontrollerar du att de mål som du vill skrapa är inställda på true. De enda mål som du kan ange är: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler, controlplane-kube-controller-manageroch controlplane-etcd.

  4. Använd ConfigMap med kommandot kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    När konfigurationen har tillämpats tar det flera minuter innan måtten från de angivna målen som skrapats från kontrollplanet visas på Azure Monitor-arbetsytan.

Mata in några andra mått utöver minimala mått

Inställningen minimal ingestion profile hjälper till att minska inmatningsvolymen för mått, eftersom den endast samlar in mått som används av standardinstrumentpaneler, standardregistreringsregler och standardaviseringar samlas in. Använd följande steg för att anpassa den här inställningen:

  1. Ladda ned ConfigMap-filen ama-metrics-settings-configmap och byt namn på den till configmap-controlplane.yaml.

  2. Ange minimalingestionprofile = true.

  3. Under default-scrape-settings-enabledkontrollerar du att de mål som du vill skrapa är inställda på true. De enda mål som du kan ange är: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler, controlplane-kube-controller-manageroch controlplane-etcd.

  4. Under default-targets-metrics-keep-listanger du listan med mått för true målen. Till exempel:

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  5. Använd ConfigMap med kommandot kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    När konfigurationen har tillämpats tar det flera minuter innan måtten från de angivna målen som skrapats från kontrollplanet visas på Azure Monitor-arbetsytan.

Mata endast in specifika mått från vissa mål

  1. Ladda ned ConfigMap-filen ama-metrics-settings-configmap och byt namn på den till configmap-controlplane.yaml.

  2. Ange minimalingestionprofile = false.

  3. Under default-scrape-settings-enabledkontrollerar du att de mål som du vill skrapa är inställda på true. De enda mål som du kan ange här är controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler,controlplane-kube-controller-manager och controlplane-etcd.

  4. Under default-targets-metrics-keep-listanger du listan med mått för true målen. Till exempel:

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  5. Använd ConfigMap med kommandot kubectl apply .

    kubectl apply -f configmap-controlplane.yaml
    

    När konfigurationen har tillämpats tar det flera minuter innan måtten från de angivna målen som skrapats från kontrollplanet visas på Azure Monitor-arbetsytan.

Felsöka problem med kontrollplansmått

Kontrollera att funktionsflaggan AzureMonitorMetricsControlPlanePreview är aktiverad och ama-metrics att poddarna körs.

Kommentar

Felsökningsmetoderna för Den hanterade Azure-tjänsten Prometheus översätts inte direkt här eftersom komponenterna som skrapar kontrollplanet inte finns i det hanterade Prometheus-tillägget.

ConfigMap-formatering

Kontrollera att du använder korrekt formatering i ConfigMap och att fälten, särskilt default-targets-metrics-keep-list, minimal-ingestion-profileoch default-scrape-settings-enabled, är korrekt ifyllda med sina avsedda värden.

Isolera kontrollplanet från dataplanet

Börja med att ange några av de nodrelaterade måtten till och kontrollera att true måtten vidarebefordras till arbetsytan. Detta hjälper dig att avgöra om problemet är specifikt för att skrapa kontrollplansmått.

Inmatade händelser

När du har tillämpat ändringarna kan du öppna Metrics Explorer från översiktssidan för Azure Monitor eller från avsnittet Övervakning det valda klustret och söka efter en ökning eller minskning av antalet händelser som matas in per minut. Det bör hjälpa dig att avgöra om ett visst mått saknas eller om alla mått saknas.

Specifika mått exponeras inte

Det har funnits fall där mått dokumenteras, men inte exponeras från målet och inte vidarebefordras till Azure Monitor-arbetsytan. I det här fallet är det nödvändigt att kontrollera att andra mått vidarebefordras till arbetsytan.

Ingen åtkomst till Azure Monitor-arbetsytan

När du aktiverar tillägget kanske du har angett en befintlig arbetsyta som du inte har åtkomst till. I så fall kan det se ut som om måtten inte samlas in och vidarebefordras. Se till att du skapar en ny arbetsyta när du aktiverar tillägget eller när du skapar klustret.

Inaktivera kontrollplansmått i ditt AKS-kluster

Du kan inaktivera kontrollplansmått när som helst genom att inaktivera det hanterade Prometheus-tillägget och avregistrera funktionsflaggan AzureMonitorMetricsControlPlanePreview .

  1. Ta bort måtttillägget som skrapar Prometheus-mått med hjälp av az aks update kommandot .

    az aks update --disable-azure-monitor-metrics --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
    
  2. Inaktivera skrapning av kontrollplansmått i AKS-klustret genom att avregistrera funktionsflaggan AzureMonitorMetricsControlPlanePreview az feature unregister med kommandot .

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

Vanliga frågor

Kan jag skrapa kontrollplansmått med egen värdbaserad Prometheus?

Nej, du kan för närvarande inte skrapa kontrollplansmått med egen värdbaserad Prometheus. Lokalt installerad Prometheus kan bara skrapa den enskilda instansen beroende på lastbalanseraren. Måtten är inte tillförlitliga, eftersom det ofta finns flera repliker av kontrollplansmåtten endast visas via hanterad Prometheus

Varför är användaragenten inte tillgänglig via kontrollplanets mått?

Kontrollplansmått i Kubernetes har inte användaragenten. Användaragenten är endast tillgänglig via de kontrollplansloggar som är tillgängliga i diagnostikinställningarna.

Nästa steg

När du har utvärderat den här förhandsgranskningsfunktionen delar du din feedback. Vi är intresserade av att höra vad du tycker.

Mer information om AKS-kontrollplansmått finns i listan över standardmått för AKS-kontrollplanet.