Ö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
- Stöder endast Azure Monitor-hanterad tjänst för Prometheus.
- Privat länk stöds inte.
- Endast standardkartan ama-metrics-settings-config-map kan anpassas. Alla andra anpassningar stöds inte.
- Klustret måste använda hanterad identitetsautentisering.
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.
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.
Ladda ned ConfigMap-filen ama-metrics-settings-configmap.yaml och byt namn på den till
configmap-controlplane.yaml
.Ange
minimalingestionprofile = false
och verifiera att målen underdefault-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-manager
ochcontrolplane-etcd
.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.
Ladda ned ConfigMap-filen ama-metrics-settings-configmap och byt namn på den till
configmap-controlplane.yaml
.Ange
minimalingestionprofile = true
och verifiera att målen underdefault-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-manager
ochcontrolplane-etcd
.Under anger
default-targets-metrics-keep-list
du listan med mått förtrue
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
Ladda ned ConfigMap-filen ama-metrics-settings-configmap och byt namn på den till
configmap-controlplane.yaml
.Ange
minimalingestionprofile = false
och verifiera att målen underdefault-scrape-settings-enabled
som du vill skrapa är inställda påtrue
. De enda mål som du kan ange här ärcontrolplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
ochcontrolplane-etcd
.Under anger
default-targets-metrics-keep-list
du listan med mått förtrue
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-list
Mer specifikt , minimal-ingestion-profile
och 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?
- Kontrollplansmått i Kubernetes har inte användaragenten. Användaragenten är endast tillgänglig via kontrollplansloggar som är tillgängliga via diagnostikinställningar
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.
- Läs mer om listan över standardmått för AKS-kontrollplanet.