Überwachen von Azure Kubernetes Service (AKS)-Steuerelementebenenmetriken (Vorschau)
Die Integrität der Azure Kubernetes Service (AKS) -Kontrollebene ist für die Leistung und Zuverlässigkeit des Clusters von entscheidender Bedeutung. Steuerelementebenenmetriken (Vorschau) bieten mehr Einblicke in die Verfügbarkeit und Leistung, sodass Sie Ihren Gesamteinblick maximieren und operative Exzellenz erreichen können. Diese Metriken sind vollständig kompatibel mit Prometheus und Grafana und können so angepasst werden, dass sie nur das speichern, was Sie als notwendig erachten. Mit diesen neuen Metriken können Sie alle Metriken von API-Server, ETCD, Scheduler, Autoscaler und Controller-Manager sammeln.
Dieser Artikel hilft Ihnen, dieses neue Feature zu verstehen, zu implementieren und die gesammelten Telemetriedaten zu beobachten.
Voraussetzungen und Einschränkungen
- Unterstützt nur den verwalteten Azure Monitor-Dienst für Prometheus.
- Private Link wird nicht unterstützt.
- Nur die Standardmäßige ama-metrics-settings-config-map kann angepasst werden. Alle anderen Anpassungen werden nicht unterstützt.
- Der Cluster muss die Authentifizierung der verwalteten Identität verwenden.
Installieren oder Aktualisieren der Azure CLI-Erweiterung aks-preview
Wichtig
AKS-Previewfunktionen stehen gemäß dem Self-Service- und Aktivierungsprinzip zur Verfügung. Vorschauversionen werden „wie besehen“ und „wie verfügbar“ bereitgestellt und sind von Service Level Agreements und der Herstellergarantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:
Installieren Sie die Azure CLI-Speichererweiterung aks-preview
mit dem Befehl az extension add
.
az extension add --name aks-preview
Wenn Sie die Erweiterungsversion aktualisieren müssen, können Sie dazu den az extension update
-Befehl verwenden.
az extension update --name aks-preview
Registrieren des Feature-Flags „AzureMonitorMetricsControlPlanePreview“
Registrieren Sie das Featureflag AzureMonitorMetricsControlPlanePreview
mithilfe des Befehls AzureMonitorMetricsControlPlanePreview
, wie im folgenden Beispiel gezeigt:
az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Es dauert einige Minuten, bis der Status Registered (Registriert) angezeigt wird. Überprüfen Sie den Registrierungsstatus mithilfe des Befehls az feature show:
az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Wenn der Zustand Registered (Registriert) lautet, aktualisieren Sie die Registrierung des Ressourcenanbieters Microsoft.ContainerService mithilfe des Befehls az provider register:
az provider register --namespace "Microsoft.ContainerService"
Aktivieren von Steuerelementebenenmetriken auf Ihrem AKS-Cluster
Sie können Steuerungsebenenmetriken mit dem verwalteten Azure Monitor-Dienst für Prometheus-Add-On während der Clustererstellung oder für ein vorhandenes Cluster aktivieren. Um Prometheus-Metriken aus Ihrem Kubernetes-Cluster zu sammeln, lesen Sie Aktivieren von Prometheus und Grafana für Kubernetes-Cluster und führen Sie die Schritte auf der CLI-Registerkarte für einen AKS-Cluster aus. Achten Sie in der Befehlszeile darauf, die Parameter --generate-ssh-keys
und --enable-managed-identity
einzufügen.
Wenn in Ihrem Cluster bereits das Prometheus-Add-On bereitgestellt ist, können Sie einfach einen az aks update
ausführen, um sicherzustellen, dass der Cluster aktualisiert wird, um mit dem Sammeln von Metriken der Steuerungsebene beginnen.
az aks update -n <cluster-name> -g <resource-group>
Hinweis
Im Gegensatz zu den Metriken, die von Clusterknoten gesammelt werden, werden Steuerelementebenenmetriken von einer Komponente gesammelt, die nicht Teil des ama-metrics-Add-Ons ist. Durch Aktivieren des AzureMonitorMetricsControlPlanePreview
-Feature-Flags und des verwalteten Prometheus-Add-Ons wird sichergestellt, dass Metriken der Steuerungsebene erfasst werden. Nach dem Aktivieren der Metriksammlung kann es mehrere Minuten dauern, bis die Daten im Arbeitsbereich angezeigt werden.
Abfragen von Steuerelementebenenmetriken
Metriken der Steuerebene werden in einem Azure-Monitorarbeitsbereich in der Region des Clusters gespeichert. Sie können direkt vom Arbeitsbereich oder über die Azure Managed Grafana-Instanz abgefragt werden, die mit dem Arbeitsbereich verbunden ist. Um den Azure Monitor-Arbeitsbereich zu finden, der dem Cluster zugeordnet ist, navigieren Sie im linken Bereich Ihres ausgewählten AKS-Clusters zum Abschnitt Überwachung und wählen Sie Insights aus. Wählen Sie auf der Seite „Containereinblicke“ für das Cluster Monitoreinstellungen aus.
Wenn Sie Azure Managed Grafana zum Visualisieren der Daten verwenden, können Sie die folgenden Dashboards importieren. AKS bietet Dashboardvorlagen, mit denen Sie Telemetriedaten der Steuerungsebene in Echtzeit anzeigen und analysieren können.
Anpassen von Metriken der Steuerungsebene
Standardmäßig enthält AKS einen vordefinierten Satz von Metriken, die für jede Komponente erfasst und gespeichert werden sollen. API server
und etcd
sind standardmäßig aktiviert. Diese Liste kann über die ama-settings-configmap angepasst werden. Die Liste der minimal-ingestion
-Profilmetriken ist hier verfügbar.
Im Folgenden sind die Standardziele aufgeführt:
controlplane-apiserver = true
controlplane-cluster-autoscaler = false
controlplane-kube-scheduler = false
controlplane-kube-controller-manager = false
controlplane-etcd = true
Die verschiedenen Optionen ähneln dem hier aufgeführten Azure Managed Prometheus.
Alle ConfigMaps sollten für jedes Cluster auf den kube-system
-Namespace angewendet werden.
Aufnehmen nur minimaler Metriken für die Standardziele
Dies ist das Standardverhalten mit der Einstellung default-targets-metrics-keep-list.minimalIngestionProfile="true"
. Nur Metriken, die weiter unten in diesem Artikel aufgeführt werden, werden für jedes der Standardziele aufgenommen, was in diesem Fall controlplane-apiserver
und controlplane-etcd
sind.
Aufnehmen aller Metriken aus allen Zielen
Führen Sie die folgenden Schritte aus, um alle Metriken von allen Zielen im Cluster zu erfassen.
Laden Sie die ConfigMap-Datei ama-metrics-settings-configmap.yaml herunter und benennen Sie sie in
configmap-controlplane.yaml
um.Legen Sie
minimalingestionprofile = false
fest und prüfen Sie, dass die Ziele unterdefault-scrape-settings-enabled
, die Sie auslesen möchten, auftrue
festgelegt sind. Die einzigen Ziele, die Sie angeben können, sind:controlplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
undcontrolplane-etcd
.Wenden Sie die ConfigMap an, indem Sie den Befehl kubectl apply ausführen.
kubectl apply -f configmap-controlplane.yaml
Nachdem die Konfiguration angewendet wurde, dauert es mehrere Minuten, bis die Metriken der angegebenen Ziele aus der Kontrollebene im Azure Monitor-Arbeitsbereich angezeigt werden.
Aufnehmen einiger anderer Metriken zusätzlich zu den Mindestmetriken
Minimal ingestion profile
ist eine Einstellung, die dazu beiträgt, das Erfassungsvolumen von Metriken zu reduzieren, da nur Metriken, die von Standarddashboards, Standardaufzeichnungsregeln und Standardwarnungen verwendet werden, erfasst werden. Führen Sie die folgenden Schritte aus, um dieses Verhalten anzupassen.
Laden Sie die ConfigMap-Datei ama-metrics-settings-configmap herunter und benennen Sie sie in
configmap-controlplane.yaml
um.Legen Sie
minimalingestionprofile = true
fest und prüfen Sie, dass die Ziele unterdefault-scrape-settings-enabled
, die Sie auslesen möchten, auftrue
festgelegt sind. Die einzigen Ziele, die Sie angeben können, sind:controlplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
undcontrolplane-etcd
.Geben Sie unter
default-targets-metrics-keep-list
die Liste der Metriken für dietrue
-Ziele an. Ein auf ein Objekt angewendetercontrolplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
Wenden Sie die ConfigMap an, indem Sie den Befehl kubectl apply ausführen.
kubectl apply -f configmap-controlplane.yaml
Nachdem die Konfiguration angewendet wurde, dauert es mehrere Minuten, bis die Metriken der angegebenen Ziele aus der Kontrollebene im Azure Monitor-Arbeitsbereich angezeigt werden.
Aufnehmen nur bestimmter Metriken aus einigen Zielen
Laden Sie die ConfigMap-Datei ama-metrics-settings-configmap herunter und benennen Sie sie in
configmap-controlplane.yaml
um.Legen Sie
minimalingestionprofile = false
fest und prüfen Sie, dass die Ziele unterdefault-scrape-settings-enabled
, die Sie auslesen möchten, auftrue
festgelegt sind. Die einzigen Ziele, die Sie hier angeben können, sindcontrolplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
undcontrolplane-etcd
.Geben Sie unter
default-targets-metrics-keep-list
die Liste der Metriken für dietrue
-Ziele an. Ein auf ein Objekt angewendetercontrolplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
Wenden Sie die ConfigMap an, indem Sie den Befehl kubectl apply ausführen.
kubectl apply -f configmap-controlplane.yaml
Nachdem die Konfiguration angewendet wurde, dauert es mehrere Minuten, bis die Metriken der angegebenen Ziele aus der Kontrollebene im Azure Monitor-Arbeitsbereich angezeigt werden.
Behandeln von Problemen mit Steuerelementebenenmetriken
Stellen Sie sicher, dass die Feature-Flag AzureMonitorMetricsControlPlanePreview
aktiviert ist und die ama-metrics
-Pods ausgeführt werden.
Hinweis
Die Problembehandlungsmethoden für den Azure Managed Service Prometheus werden hier nicht direkt übersetzt, da die Komponenten, welche die Steuerebene auslesen, nicht im verwalteten Prometheus-Add-On vorhanden sind.
ConfigMap-Formatierung oder -Fehler
Stellen Sie sicher, dass Sie die Formatierung der ConfigMap überprüfen und die Felder mit den vorgesehenen Werten richtig aufgefüllt werden. Insbesondere die default-targets-metrics-keep-list
, minimal-ingestion-profile
und default-scrape-settings-enabled
.
Isolieren der Steuerungsebene von Datenebenenproblemen
Legen Sie zunächst einige der knotenbezogenen Metriken auf true
fest und überprüfen Sie, ob die Metriken an den Arbeitsbereich weitergeleitet werden. Dies hilft zu ermitteln, ob das Problem spezifisch für das Auslesen von Steuerelementebenenmetriken ist.
Aufgenommene Ereignisse
Nachdem Sie die Änderungen angewendet haben, können Sie den Metrik-Explorer über die Übersichtsseite von Azure Monitor oder über den Abschnitt Überwachung des ausgewählten Clusters öffnen. Wählen Sie im Azure-Portal die Option Metriken aus. Überprüfen Sie, ob die Anzahl der pro Minute aufgenommenen Ereignisse erhöht oder verringert wird. Es sollte Ihnen helfen zu ermitteln, ob die spezifische Metrik fehlt oder ob alle Metriken fehlen.
Bestimmte Metriken werden nicht verfügbar gemacht
Es gab Fälle, in denen die Metriken dokumentiert, aber nicht vom Ziel verfügbar gemacht und nicht an den Azure Monitor-Arbeitsbereich weitergeleitet wurden. In diesem Fall muss überprüft werden, ob andere Metriken an den Arbeitsbereich weitergeleitet werden.
Kein Zugriff auf den Azure Monitor-Arbeitsbereich
Wenn Sie das Add-On aktivieren, haben Sie möglicherweise einen vorhandenen Arbeitsbereich angegeben, auf den Sie keinen Zugriff haben. In diesem Fall könnte es so aussehen, als würden die Metriken nicht erfasst und weitergeleitet. Stellen Sie sicher, dass Sie beim Aktivieren des Add-Ons oder beim Erstellen des Clusters einen neuen Arbeitsbereich erstellen.
Deaktivieren von Steuerelementebenenmetriken auf Ihrem AKS-Cluster
Sie können Steuerebenenmetriken jederzeit deaktivieren, indem Sie entweder das Feature-Flag deaktivieren, verwaltetes Prometheus deaktivieren oder das AKS-Cluster löschen.
Vorschauflag nach dem Setup von verwaltetem Prometheus aktiviert
Wenn das Vorschauflag (AzureMonitorMetricsControlPlanePreview
) auf einem vorhandenen verwalteten Prometheus-Cluster aktiviert wurde, muss ein Update für den Cluster erzwungen werden, um Metriken der Steuerungsebene auszugeben
Sie können einen „az aks update“-Befehl ausführen, um sicherzustellen, dass der Cluster aktualisiert wird, um mit dem Sammeln von Metriken der Steuerungsebene zu beginnen.
az aks update -n <cluster-name> -g <resource-group>
Hinweis
Durch diese Aktion werden keine vorhandenen Daten entfernt, die in Ihrem Azure Monitor-Arbeitsbereich gespeichert sind.
Führen Sie den folgenden Befehl aus, um das Metrik-Add-On zu entfernen, das Prometheus-Metriken ausliest.
az aks update --disable-azure-monitor-metrics -n <cluster-name> -g <cluster-resource-group>
Führen Sie den folgenden Befehl aus, um das Auslesen der Metriken der Steuerungsebene im AKS-Cluster zu deaktivieren, indem Sie die Registrierung des AzureMonitorMetricsControlPlanePreview
-Feature-Flags mithilfe des az-Features aufheben-Befehls aufheben.
az feature unregister "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Häufig gestellte Fragen
Können diese Metriken mit selbst gehostetem Prometheus ausgelesen werden?
- Die Metriken der Steuerebene können derzeit nicht mit selbst gehostetem Prometheus ausgelesen werden. Selbst gehostetes Prometheus kann die einzelne Instanz je nach Lastenausgleich auslesen. Diese Metriken sind nicht identisch, da es häufig mehrere Replikate der Metriken der Steuerungsebene gibt, die nur über verwaltetes Prometheus sichtbar sind.
Warum ist der Benutzer-Agent nicht über die Metriken der Steuerebene verfügbar?
- Metriken der Steuerungsebene in Kubernetes verfügen nicht über den Benutzer-Agent. Der Benutzer-Agent ist nur über Steuerungsebenenprotokolle verfügbar, die über Diagnoseeinstellungen verfügbar sind.
Nächste Schritte
Nachdem Sie dieses Vorschaufeature ausgewertet haben, geben Sie Ihr Feedback weiter. Wir sind daran interessiert zu hören, was Sie denken.
- Erfahren Sie mehr über die Liste der Standardmetriken für die AKS-Steuerelementebene.