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

Azure Kubernetes Service (AKS) kontrollplanshälsa är avgörande för klustrets prestanda och tillförlitlighet. Kontrollplansmått (förhandsversion) ger bättre insyn i dess tillgänglighet och prestanda, så att du kan maximera den övergripande observerbarheten och upprätthålla driftskvaliteten. Dessa mått är helt kompatibla med Prometheus och Grafana och kan anpassas för att endast lagra det du anser vara nödvändigt. Med dessa nya mått kan du samla in alla mått från API Server, ETCD, Scheduler, Autoscaler och Controller Manager.

Den här artikeln hjälper dig att förstå den här nya funktionen, hur du implementerar den och hur du observerar den insamlade telemetrin.

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:

aks-preview Installera Azure CLI-tillägget med kommandot az extension add .

az extension add --name aks-preview

Om du behöver uppdatera tilläggsversionen kan du göra det med hjälp av az extension update kommandot .

az extension update --name aks-preview

Registrera funktionsflaggan "AzureMonitorMetricsControlPlanePreview"

Registrera funktionsflaggan AzureMonitorMetricsControlPlanePreview med kommandot az feature register , som du ser i följande exempel:

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

Det tar några minuter för statusen att visa Registrerad. Kontrollera registreringsstatusen med kommandot az feature show :

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

När statusen visar Registrerad uppdaterar du registreringen av Resursprovidern Microsoft.ContainerService med hjälp av kommandot az provider register :

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 klustret skapas eller för ett befintligt kluster. Information om hur du samlar in Prometheus-mått från kubernetes-klustret finns i Aktivera Prometheus och Grafana för Kubernetes-kluster och följ stegen på fliken CLI för ett AKS-kluster. På kommandoraden måste du inkludera parametrarna --generate-ssh-keys och --enable-managed-identity.

Om ditt kluster redan har Prometheus-tillägget distribuerat kan du helt enkelt köra ett az aks update för att säkerställa att klustret uppdateras för att börja samla in kontrollplansmått.

az aks update -n <cluster-name> -g <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.

Köra frågor mot kontrollplansmått

Kontrollplansmått lagras på en Azure Monitor-arbetsyta i klustrets region. De kan frågas direkt från arbetsytan eller via Azure Managed Grafana-instansen som är ansluten till arbetsytan. Om du vill hitta den Azure Monitor-arbetsyta som är associerad med klustret går du till det vänstra fönstret i det valda AKS-klustret, går till avsnittet Övervakning och väljer Insikter. På sidan Container Insights för klustret väljer du Övervaka Inställningar.

Skärmbild av Azure Monitor-arbetsytan.

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

Anpassa kontrollplansmått

AK:er innehåller som standard 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. Den här listan kan anpassas via konfigurationskartan ama-settings-configmap. Listan över minimal-ingestion profilmått finns här.

Följande visar standardmålen:

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

De olika alternativen liknar Azure Managed Prometheus som anges här.

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

Mata endast in minimala mått för standardmålen

Det här är standardbeteendet med inställningen default-targets-metrics-keep-list.minimalIngestionProfile="true". Endast mått som anges senare i den här artikeln matas in för vart och ett av standardmålen, vilket i det här fallet är controlplane-apiserver och controlplane-etcd.

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

Utför följande steg för att samla in alla mått från alla mål i klustret.

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

  2. Ange minimalingestionprofile = false och verifiera att målen under default-scrape-settings-enabled 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.

  3. Använd ConfigMap genom att köra 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

Minimal ingestion profile är en inställning som hjälper till att minska inmatningsvolymen av mått, eftersom endast mått som används av standardinstrumentpaneler, standardregistreringsregler och standardaviseringar samlas in. Utför följande steg för att anpassa det här beteendet.

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

  2. Ange minimalingestionprofile = true och verifiera att målen under default-scrape-settings-enabled 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.

  3. Under anger default-targets-metrics-keep-listdu listan med mått för true målen. Exempel:

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  • Använd ConfigMap genom att köra 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 och verifiera att målen under default-scrape-settings-enabled 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.

  3. Under anger default-targets-metrics-keep-listdu listan med mått för true målen. Exempel:

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  • Använd ConfigMap genom att köra 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 eller fel

Kontrollera formateringen för ConfigMap och om fälten är korrekt ifyllda med de avsedda värdena. default-targets-metrics-keep-listMer specifikt , minimal-ingestion-profileoch default-scrape-settings-enabled.

Isolera kontrollplan från dataplansproblem

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. I Azure-portalen väljer du Mått. Sök efter en ökning eller minskning av antalet händelser som matas in per minut. Det bör hjälpa dig att avgöra om det specifika måttet saknas eller om alla mått saknas.

Specifika mått exponeras inte

Det fanns fall där måtten dokumenteras, men inte exponeras från målet och inte vidarebefordrades 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 antingen inaktivera funktionsflaggan, inaktivera hanterad Prometheus eller genom att ta bort AKS-klustret.

Förhandsgranskningsflagga aktiverad efter konfiguration av Hanterad Prometheus

Om förhandsgranskningsflaggan(AzureMonitorMetricsControlPlanePreview) har aktiverats i ett befintligt hanterat Prometheus-kluster, krävs det en uppdatering för att klustret ska kunna generera kontrollplansmått

Du kan köra en az aks-uppdatering för att säkerställa att klustret uppdateras för att börja samla in kontrollplansmått.

az aks update -n <cluster-name> -g <resource-group>

Kommentar

Den här åtgärden tar inte bort befintliga data som lagras på din Azure Monitor-arbetsyta.

Kör följande kommando för att ta bort måtttillägget som skrapar Prometheus-mått.

az aks update --disable-azure-monitor-metrics -n <cluster-name> -g <cluster-resource-group>

Kör följande kommando för att inaktivera skrapning av kontrollplansmått i AKS-klustret genom att AzureMonitorMetricsControlPlanePreview avregistrera funktionsflaggan med kommandot az feature unregister .

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

Vanliga frågor och svar

  • Kan dessa mått skrapas med egen värdbaserad prometheus?

    • Kontrollplansmåtten kan för närvarande inte skrapas med egen värdbaserad prometheus. Prometheus med egen värd kan skrapa den enskilda instansen beroende på lastbalanseraren. Dessa mått är inte samtidiga eftersom det ofta finns flera repliker av kontrollplansmåtten som bara visas via Managed Prometheus
  • Varför är användaragenten inte tillgänglig via kontrollplanets mått?

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.