Überwachen von Kubernetes-Clustern mithilfe von Azure-Diensten und cloudnativen Tools
In diesem Artikel wird beschrieben, wie Sie die Integrität und Leistung Ihrer Kubernetes-Cluster und der darin ausgeführten Workloads mithilfe von Azure Monitor und zugehörigen Azure- und cloudnativen Diensten überwachen können. Dies schließt Cluster ein, die in Azure Kubernetes Service (AKS) oder anderen Clouds wie AWS und GCP ausgeführt werden. Es werden unterschiedliche Anleitungen für die verschiedenen Rollen bereitgestellt, mit denen typischerweise die einzelnen Komponenten einer Kubernetes-Umgebung verwaltet werden.
Wichtig
Der vorliegende Artikel bietet eine umfassende Anleitung zur Überwachung der verschiedenen Ebenen Ihrer Kubernetes-Umgebung auf der Grundlage von Azure Kubernetes Service (AKS) oder Kubernetes-Clustern in anderen Clouds. Wenn Sie zum ersten Mal mit AKS oder Azure Monitor arbeiten, finden Sie unter Überwachen von AKS grundlegende Informationen für den Einstieg in die Überwachung eines AKS-Clusters.
Ebenen und Rollen einer Kubernetes-Umgebung
Die folgende Abbildung zeigt ein gängiges Modell einer typischen Kubernetes-Umgebung, beginnend mit der Infrastrukturebene bis hin zu den Anwendungen. Für jede Ebene gelten andere Überwachungsanforderungen, die von verschiedenen Diensten erfüllt und in der Regel über unterschiedliche Rollen in der Organisation verwaltet werden.
Die Verantwortung für die verschiedenen Ebenen einer Kubernetes-Umgebung und die davon abhängigen Anwendungen wird in der Regel von mehreren Rollen übernommen. Je nach Größe Ihrer Organisation können diese Rollen von verschiedenen Personen oder sogar verschiedenen Teams wahrgenommen werden. Die nachstehende Tabelle beschreibt die verschiedenen Rollen, während in den folgenden Abschnitten die typischen Überwachungsszenarien für jede dieser Rollen beschrieben werden.
Rollen | Beschreibung |
---|---|
Entwickler | Entwicklung und Wartung der Anwendung, die auf dem Cluster ausgeführt wird. Verantwortlich für den anwendungsspezifischen Datenverkehr, darunter auch für die Anwendungsleistung und für Fehler. Aufrechterhaltung der Anwendungszuverlässigkeit gemäß den SLAs. |
Plattformtechniker*in | Verantwortlich für den Kubernetes-Cluster. Bereitstellung und Wartung der von den Entwickler*innen verwendeten Plattform. |
Netzwerktechniker*in | Verantwortlich für den Datenverkehr zwischen Workloads und allen Eintritts-/Austrittspunkten des Clusters. Analysiert den Netzwerkdatenverkehr und führt eine Bedrohungsanalyse durch. |
Auswahl der Überwachungstools
Azure bietet einen vollständigen, auf Azure Monitor basierenden Satz von Diensten zur Überwachung der Integrität und Leistung verschiedener Ebenen Ihrer Kubernetes-Infrastruktur und der Anwendungen, die von ihr abhängen. Diese Dienste arbeiten zusammen, um eine vollständige Überwachungslösung bereitzustellen, und werden sowohl für AKS als auch für Kubernetes-Cluster empfohlen, die in anderen Clouds betrieben werden. Möglicherweise haben Sie bereits in cloudnative Technologien investiert, die von der Cloud Native Computing Foundation (CNCF) unterstützt werden. In diesem Fall können Sie die Azure-Tools in Ihre bestehende Umgebung integrieren.
Die Auswahl der bereitzustellenden Tools und deren Konfiguration hängt von den Anforderungen Ihrer speziellen Umgebung ab. Sie können z. B. die verwalteten Angebote in Azure für Prometheus und Grafana verwenden, oder Sie können Ihre vorhandene Installation dieser Tools mit Ihren Kubernetes-Clustern in Azure verwenden. Ihre Organisation kann alternativ zu Container Insights auch andere Tools zum Sammeln und Analysieren von Kubernetes-Protokollen verwenden, z. B. Splunk oder Datadog.
Wichtig
Die Überwachung einer komplexen Umgebung wie Kubernetes erfordert die Erfassung einer beträchtlichen Menge an Telemetriedaten, von denen ein Großteil Kosten verursacht. Sie sollten gerade so viele Daten sammeln, wie Sie benötigen. Dies betrifft die Menge der erfassten Daten, die Sammlungshäufigkeit sowie den Aufbewahrungszeitraum. Wenn Sie besonderen Wert auf die Kosten legen, können Sie auch nur einen Teil des vollen Funktionsumfangs implementieren, um Ihre Überwachungskosten zu senken.
Netzwerktechniker*in
Die Netzwerktechniker*innen sind für den Datenverkehr zwischen den Workloads und allen Eintritts-/Austrittspunkten des Clusters verantwortlich. Sie analysieren den Netzwerkdatenverkehr und führen eine Bedrohungsanalyse durch.
Azure-Dienste für Netzwerkadministrator*innen
In der folgenden Tabelle werden die Dienste aufgelistet, die von den Netzwerktechniker üblicherweise zur Überwachung der Integrität und Leistung des Netzwerks, das den Kubernetes-Cluster unterstützt, verwendet werden.
Dienst | Beschreibung |
---|---|
Network Watcher | Toolsammlung in Azure, um die von Ihren Kubernetes-Clustern verwendeten virtuellen Netzwerke zu überwachen und erkannte Probleme zu diagnostizieren. |
Traffic Analytics | Feature von Network Watcher, das Datenflussprotokolle analysiert, um Einblicke in den Datenverkehrsfluss zu erhalten. |
Network Insights | Feature von Azure Monitor, das eine visuelle Darstellung der Leistung und Integrität verschiedener Netzwerkkomponenten bereitstellt und Zugriff auf die Netzwerküberwachungstools bietet, die Teil von Network Watcher sind. |
Network Insights ist standardmäßig aktiviert und erfordert keine Konfiguration. Network Watcher ist typischerweise ebenfalls standardmäßig in jeder Azure-Region aktiviert.
Überwachungsebene 1: Netzwerk
Im Folgenden finden Sie gängige Szenarien für die Überwachung des Netzwerks.
- Erstellen Sie Datenflussprotokolle, um Informationen über den IP-Datenverkehr zu protokollieren, der durch die von Ihrem Cluster verwendeten Netzwerksicherheitsgruppen fließt, und analysieren Sie diese Daten anschließend mithilfe von Traffic Analytics, um Erkenntnisse daraus zu gewinnen. Höchstwahrscheinlich verwenden Sie für Traffic Analytics denselben Log Analytics-Arbeitsbereich, den Sie auch für Container Insights und die Protokolle der Steuerungsebene verwenden.
- Mithilfe von Traffic Analytics können Sie ermitteln ob an unerwarteten Ports, die vom Cluster verwendet werden, eingehender oder ausgehender Datenverkehr vorliegt und ob Datenverkehr über öffentliche IP-Adressen fließt, die nicht verfügbar gemacht werden sollten. Anhand dieser Informationen können Sie feststellen, ob Ihre Netzwerkregeln geändert werden müssen.
- Verwenden Sie für AKS-Cluster das Network Observability-Add-On für AKS (Vorschau), um den Zugriff zwischen den Diensten im Cluster (Ost-West-Datenverkehr) zu überwachen und zu beobachten.
Plattformtechniker*in
Die Plattformtechniker*innen, auch als Clusteradministrator*innen bezeichnet, sind für den Kubernetes-Cluster selbst verantwortlich. Sie stellen die von den Entwickler*innen genutzte Plattform bereit und warten sie. Sie müssen die Integrität des Clusters und seiner Komponenten verstehen und in der Lage sein, alle erkannten Probleme zu beseitigen. Zudem müssen sie die Kosten für den Betrieb des Clusters kennen und ggf. in der Lage sein, die Kosten den verschiedenen Teams zuzuordnen.
In großen Organisationen kann es außerdem Fleet Architects geben, die ähnlich wie die Plattformtechniker*innen für mehrere Cluster zuständig sind. Sie benötigen Einblick in die gesamte Umgebung und müssen administrative Aufgaben in großem Stil durchführen. Die Empfehlungen im großen Stil sind im untenstehenden Leitfaden enthalten. Weitere Informationen zum Erstellen einer Flottenressource für Szenarien mit mehreren Clustern und im großen Stil finden Sie unter Was ist Azure Kubernetes Fleet Manager?.
Azure-Dienste für Plattformtechniker*innen
In der folgenden Tabelle sind die Azure-Dienste aufgeführt, mit denen Plattformtechniker*innen die Integrität und Leistung des Kubernetes-Clusters und seiner Komponenten überwachen können.
Dienst | Beschreibung |
---|---|
Container Insights | Azure-Dienst für AKS- und Azure Arc-fähige Kubernetes-Cluster, die eine containerisierte Version des Azure Monitor-Agents verwenden, um stdout/stderr-Protokolle, Leistungsmetriken und Kubernetes-Ereignisse von jedem Knoten in Ihrem Cluster zu sammeln. Sie können die Daten im Azure-Portal anzeigen oder sie mit Log Analytics abfragen. Konfigurieren Sie die Prometheus-Umgebung für die Verwendung von Container Insights-Ansichten mit Prometheus-Daten. |
Verwalteter Azure Monitor-Dienst für Prometheus | Prometheus ist eine cloudnative Metriklösung der Cloud Native Compute Foundation und stellt das am häufigsten verwendete Tool zum Sammeln und Analysieren von Metrikdaten aus Kubernetes-Clustern dar. Der verwaltete Azure Monitor-Dienst für Prometheus ist eine vollständig verwaltete Lösung, die mit der Prometheus-Abfragesprache (PromQL) und Prometheus-Warnmeldungen kompatibel ist und zur Visualisierung in Azure Managed Grafana integriert ist. Dieser Dienst unterstützt Ihre Investition in Open-Source-Tools, ohne die Komplexität der Verwaltung einer eigenen Prometheus-Umgebung. |
Azure Arc-fähiges Kubernetes | Ermöglicht Ihnen das Anfügen an Kubernetes-Cluster, die in anderen Clouds ausgeführt werden, sodass Sie sie in Azure verwalten und konfigurieren können. Wenn der Arc-Agent installiert ist, können Sie AKS und Hybridcluster mithilfe derselben Methoden und Tools (einschließlich Container Insights und Prometheus) gemeinsam überwachen. |
Von Azure verwaltetes Grafana | Vollständig verwaltete Implementierung von Grafana, einer Open-Source-Plattform für die Datenvisualisierung, die häufig zur Darstellung von Prometheus- und anderen Daten verwendet wird. Mehrere vordefinierte Grafana-Dashboards stehen für die Überwachung von Kubernetes und die umfassende Problembehandlung zur Verfügung. |
Konfigurieren der Überwachung für Plattformtechniker*innen
In den folgenden Abschnitten finden Sie eine Schrittanleitung für die vollständige Überwachung Ihrer Kubernetes-Umgebung unter Verwendung der Azure-Dienste in der obigen Tabelle. Für jeden Dienst werden Funktionalität und Integrationsmöglichkeiten angegeben, damit Sie bestimmen können, an welchen Stellen die Konfiguration geändert werden muss, um Ihre speziellen Anforderungen zu erfüllen.
Das Onboarding von Container Insights und Managed Prometheus kann Teil der gleichen Vorgehensweise sein wie unter Aktivieren der Überwachung für Kubernetes-Cluster beschrieben. In den folgenden Abschnitten werden die einzelnen Komponenten beschrieben, sodass Sie alle jeweiligen Onboarding- und Konfigurationsoptionen berücksichtigen können.
Aktivieren des Scrapings von Prometheus-Metriken
Wichtig
Zum Verwenden des für den verwalteten Azure Monitor-Diensts für Prometheus benötigen Sie einen Azure Monitor-Arbeitsbereich. Informationen zu den Entwurfsüberlegungen für eine Arbeitsbereichskonfiguration finden Sie unter Architektur des Azure Monitor-Arbeitsbereichs.
Aktivieren Sie das Scraping von Prometheus-Metriken durch den verwalteten Azure Monitor-Dienst für Prometheus aus Ihrem Cluster über eine der folgenden Methoden:
- Wählen Sie die Option Prometheus-Metriken aktivieren aus, wenn Sie einen AKS-Cluster erstellen.
- Wählen Sie die Option Prometheus-Metriken aktivieren aus, wenn Sie Container Insights für einen vorhandenen AKS-Cluster oder einen Azure Arc-fähigen Kubernetes-Cluster aktivieren.
- Führen Sie eine Aktivierung für einen bestehenden AKS-Cluster oder Arc-fähigen Kubernetes-Cluster durch.
Wenn Sie bereits über eine Prometheus-Umgebung verfügen, die Sie für Ihre AKS-Cluster verwenden möchten, dann aktivieren Sie den verwalteten Azure Monitor-Dienst für Prometheus, und senden Sie dann per Remoteschreibzugriff Daten an Ihre vorhandene Prometheus-Umgebung. Sie können per Remoteschreibzugriff auch Daten aus Ihrer vorhandenen selbstverwalteten Prometheus-Umgebung an den verwalteten Azure Monitor-Dienst für Prometheus senden.
Einzelheiten zu den standardmäßig erfassten Metriken und ihrer Erfassungshäufigkeit finden Sie unter Standardkonfiguration der Prometheus-Metriken in Azure Monitor. Wenn Sie die Konfiguration anpassen möchten, finden Sie weitere Informationen unter Anpassen des Scrapings von Prometheus-Metriken im verwalteten Azure Monitor-Dienst für Prometheus.
Aktivieren von Grafana für die Analyse von Prometheus-Daten
Hinweis
Verwenden Sie Grafana für die Überwachung Ihrer Kubernetes-Umgebung, wenn Sie über eine vorhandene Investition in Grafana verfügen oder wenn Sie Grafana-Dashboards anstelle von Container Insights verwenden möchten, um Ihre Prometheus-Daten zu analysieren. Wenn Sie Grafana nicht verwenden möchten, aktivieren Sie die Prometheus-Umgebung in Container Insights, damit Sie Container Insights-Ansichten mit Ihren Prometheus-Daten verwenden können.
Erstellen Sie eine Instanz von Managed Grafana, und verknüpfen Sie sie mit Ihrem Azure Monitor-Arbeitsbereich, sodass Sie Ihre Prometheus-Daten als Datenquelle nutzen können. Sie können diese Konfiguration auch manuell durchführen, indem Sie den verwalteten Azure Monitor-Dienst für Prometheus als Datenquelle hinzufügen. Für die Überwachung von Kubernetes-Clustern stehen zahlreiche vordefinierte Dashboards zur Verfügung, darunter mehrere, die ähnliche Informationen bieten wie die Container Insights-Ansichten.
Wenn Sie über eine vorhandene Grafana-Umgebung verfügen, können Sie diese weiter nutzen und den verwalteten Azure Monitor-Dienst für Prometheus als Datenquelle hinzufügen. Sie können außerdem die Azure Monitor-Datenquelle zu Grafana hinzufügen, um von Container Insights gesammelte Daten in benutzerdefinierten Grafana-Dashboards zu verwenden. Führen Sie diese Konfiguration durch, wenn Sie sich auf Grafana-Dashboards konzentrieren möchten, anstatt die Container Insights-Anzeigen und -Berichte zu verwenden.
Aktivieren von Container Insights für die Erfassung von Protokollen
Wenn Sie Container Insights für Ihren Kubernetes-Cluster aktivieren, wird eine containerisierte Version des Azure Monitor-Agents bereitgestellt, der Daten an einen Log Analytics-Arbeitsbereich in Azure Monitor sendet. Container Insights erfasst Containerprotokolle (stdout/stderr), Infrastrukturprotokolle und Leistungsdaten. Sämtliche Protokolldaten werden in einem Log Analytics-Arbeitsbereich gespeichert, wo sie mithilfe der Kusto-Abfragesprache (KQL) analysiert werden können.
Informationen zu den Voraussetzungen und Konfigurationsoptionen für das Onboarding Ihrer Kubernetes-Cluster finden Sie unter Aktivieren von Container Insights. Führen Sie ein Onboarding unter Verwendung von Azure Policy durch, um sicherzustellen, dass alle Cluster eine konsistente Konfiguration aufweisen.
Sobald Container Insights für einen Cluster aktiviert ist, sollten Sie die folgenden Schritte ausführen, um Ihre Installation zu optimieren.
- Aktivieren Sie die Prometheus-Umgebung in Container Insights, damit Sie Container Insights-Ansichten mit Ihren Prometheus-Daten verwenden können.
- Zur Verbesserung der Abfrage anhand der von Container Insights erfassten Daten und zur Verringerung der Erfassungskosten sollten Sie für jeden Cluster das ContainerLogV2-Schema aktivieren. Wenn Sie Protokolle nur zur gelegentlichen Problembehandlung verwenden, sollten Sie die betreffende Tabelle ggf. als Basic-Protokolle konfigurieren.
- Verwenden Sie die unter Aktivieren der Kostenoptimierungseinstellungen in Container Insights beschriebenen Kostenvoreinstellungen, um die Kosten für die Container Insights-Datenerfassung zu senken, indem Sie die gesammelte Datenmenge reduzieren. Deaktivieren Sie die Sammlung von Metriken, indem Sie Container Insights so konfigurieren, dass nur Protokolle und Ereignisse gesammelt werden, da viele mit den Metrikwerten in Prometheus identisch sind.
Wenn Sie bereits über eine Lösung zum Erfassen von Protokollen verfügen, befolgen Sie die Anleitung für dieses Tool, oder aktivieren Sie Container Insights, und verwenden Sie das Datenexportfeature des Log Analytics-Arbeitsbereichs, um Daten an Azure Event Hubs zu senden und an ein alternatives System weiterzuleiten.
Erfassen von Protokollen auf Steuerungsebene für AKS-Cluster
Die Protokolle für Komponenten der AKS-Steuerungsebene werden in Azure als Ressourcenprotokolle implementiert. Da diese Protokolle nicht von Container Insights verwendet werden, müssen Sie eigene Protokollabfragen erstellen, um sie anzuzeigen und zu analysieren. Ausführliche Informationen zu Protokollstruktur und Abfragen finden Sie unter Abfragen von Protokollen aus Container Insights.
Erstellen Sie für jeden AKS-Cluster eine Diagnoseeinstellung, um Ressourcenprotokolle an einen Log Analytics-Arbeitsbereich zu senden. Verwenden Sie Azure Policy, um clusterübergreifend eine konsistente Konfiguration zu gewährleisten.
Für das Senden von Ressourcenprotokollen an einen Arbeitsbereich fallen Kosten an. Daher sollten Sie nur die Protokollkategorien erfassen, die Sie verwenden möchten. Eine Beschreibung der Kategorien, die für AKS verfügbar sind, finden Sie unter Ressourcenprotokolle. Erfassen Sie zunächst eine minimale Anzahl von Kategorien, und ändern Sie die Diagnoseeinstellung, um weitere Kategorien zu erfassen, wenn sich Ihre Anforderungen erhöhen und Sie besser mit den damit verbundenen Kosten vertraut sind. Wenn Sie die Informationen aus Compliancegründen aufbewahren müssen, können Sie Protokolle an ein Azure Storage-Konto senden, um Kosten zu sparen. Ausführliche Informationen zu den Kosten für die Erfassung und Aufbewahrung von Protokolldaten finden Sie unter Preisdetails zu Azure Monitor-Protokollen.
Wenn Sie unsicher sind, welche Ressourcenprotokolle Sie anfangs aktivieren sollten, können Sie sich an den folgenden Empfehlungen orientieren, die auf den gängigsten Kundenanforderungen basieren. Sie können bei Bedarf später andere Kategorien aktivieren.
Kategorie | Aktivieren? | Destination |
---|---|---|
kube-apiserver | Aktivieren | Log Analytics-Arbeitsbereich |
kube-audit | Aktivieren | Azure-Speicher. Dadurch werden die Kosten minimiert und die Überwachungsprotokolle trotzdem aufbewahrt, falls sie von einem Prüfer benötigt werden. |
kube-audit-admin | Aktivieren | Log Analytics-Arbeitsbereich |
kube-controller-manager | Aktivieren | Log Analytics-Arbeitsbereich |
kube-scheduler | Deaktivieren | |
cluster-autoscaler | Aktivieren, wenn die Autoskalierung aktiviert ist | Log Analytics-Arbeitsbereich |
guard | Aktivieren, wenn Microsoft Entra ID aktiviert ist | Log Analytics-Arbeitsbereich |
AllMetrics | Deaktivieren, da Metriken in Managed Prometheus erfasst werden | Log Analytics-Arbeitsbereich |
Wenn Sie bereits über eine Lösung zum Erfassen von Protokollen verfügen, befolgen Sie entweder die Anleitung für dieses Tool, oder aktivieren Sie Container Insights, und verwenden Sie das Datenexportfeature des Log Analytics-Arbeitsbereichs, um Daten an Azure Event Hubs zu senden und an ein alternatives System weiterzuleiten.
Erfassen des Aktivitätsprotokolls für AKS-Cluster
Konfigurationsänderungen an Ihren AKS-Clustern werden im Aktivitätsprotokoll gespeichert. Erstellen Sie eine Diagnoseeinstellung zum Senden dieser Daten an Ihren Log Analytics-Arbeitsbereich, um sie mit anderen Überwachungsdaten zu analysieren. Diese Datenerfassung ist kostenlos, und Sie können die Daten mithilfe von Log Analytics analysieren oder Warnungen zu den Daten ausgeben.
Überwachungsebene 2: Komponenten auf Clusterebene
Die Clusterebene umfasst die folgenden Komponenten:
Komponente | Überwachungsanforderungen |
---|---|
Node | Machen Sie sich vor der Bereitstellung von Workloads mit dem Bereitschaftsstatus und der Leistung von CPU, Arbeitsspeicher, Datenträgern und der Nutzung von IP-Adressen für jeden Knoten vertraut, und überwachen Sie deren Nutzungstrends proaktiv. |
Im Folgenden finden Sie gängige Szenarien für die Überwachung der Komponenten auf Clusterebene.
Container Insights
- In der Ansicht Cluster können Sie sich einen Überblick über die Leistung der Knoten in Ihrem Cluster sowie über deren CPU- und Arbeitsspeicherauslastung verschaffen.
- In der Ansicht Knoten können Sie sich neben der Integrität der einzelnen Knoten auch die Integrität und Leistung der jeweils ausgeführten Pods ansehen. Ausführliche Informationen zur Analyse der Knotenintegrität und -leistung finden Sie unter Überwachen der Leistung Ihres Kubernetes-Clusters mit Container Insights.
- Verwenden Sie unter Berichte die Arbeitsmappen zur Knotenüberwachung, um die Datenträgerkapazität, die Datenträger-E/A und die GPU-Auslastung zu analysieren. Weitere Informationen zu diesen Arbeitsmappen finden Sie unter Arbeitsmappen zur Knotenüberwachung.
- Wählen Sie unter Überwachung die Option Arbeitsmappen und dann Subnetz-IP-Nutzung aus, um die IP-Zuordnung und Zuweisung der einzelnen Knoten für einen ausgewählten Zeitraum anzuzeigen.
Grafana-Dashboards
- Verwenden Sie das vordefinierte Dashboard in Managed Grafana für Kubelet, um die Integrität und Leistung der einzelnen anzuzeigen.
- Verwenden Sie Grafana-Dashboards mit Prometheus-Metrikwerten für Datenträger, z. B.
node_disk_io_time_seconds_total
undwindows_logical_disk_free_bytes
, um den angeschlossenen Speicher zu überwachen. - Es stehen verschiedene Kubernetes-Dashboards zur Verfügung, die die Leistung und Integrität Ihrer Knoten basierend auf den in Prometheus gespeicherten Daten visualisieren.
Log Analytics
- Wählen Sie im Dialogfeld Abfragen für Ihren Log Analytics-Arbeitsbereich die Kategorie Container, um auf vordefinierte Protokollabfragen für Ihren Cluster zuzugreifen, darunter die Protokollabfrage Imagebestand, die Daten aus der über Container Insights aufgefüllten Tabelle ContainerImageInventory abruft.
Problembehandlung
- Bei der Problembehandlung kann es erforderlich sein, dass Sie zur Wartung oder zur sofortigen Protokollerfassung direkt auf die Knoten zugreifen müssen. AKS-Knoten werden aus Sicherheitsgründen nicht über das Internet verfügbar gemacht. Sie können jedoch mit dem Befehl
kubectl debug
eine SSH-Verbindung mit den AKS-Knoten herstellen. Ausführliche Informationen zu diesem Prozess finden Sie unter Herstellen einer SSH-Verbindung mit Azure Kubernetes Service-Clusterknoten (AKS) zur Wartung oder Problembehandlung.
Kostenanalyse
- Konfigurieren Sie OpenCost, ein Open-Source- und anbieterneutrales CNCF-Sandbox-Projekt zum Verständnis Ihrer Kubernetes-Kosten, um Ihre Analyse der Clusterkosten zu unterstützen. Es exportiert detaillierte Kostendaten in Azure Storage.
- Nutzen Sie die Daten von OpenCost, um die relative Nutzung des Clusters durch verschiedene Teams in Ihrer Organisation aufzuschlüsseln, sodass Sie die Kosten den einzelnen Teams zuordnen können.
- Nutzen Sie die Daten von OpenCost, um sicherzustellen, dass der Cluster die volle Kapazität seiner Knoten ausschöpft. Erhöhen Sie hierzu die Dichte der Workloads, indem Sie nur wenige große Knoten anstelle von vielen kleinen Knoten verwenden.
Überwachungsebene 3: Managed Kubernetes-Komponenten
Die Managed Kubernetes-Ebene umfasst die folgenden Komponenten:
Komponente | Überwachung |
---|---|
API-Server | Überwachen Sie den Status des API-Servers, und identifizieren Sie jegliche Zunahme der Anforderungslast sowie Engpässe, wenn der Dienst nicht verfügbar ist. |
Kubelet | Die Überwachung von Kubelet unterstützt die Behandlung von Problemen mit der Podverwaltung, nicht startenden Pods, nicht bereiten Knoten oder beendeten Pods. |
Im Folgenden finden Sie häufige Szenarien für die Überwachung Ihrer Managed Kubernetes-Komponenten.
Container Insights
- Wählen Sie unter Überwachung die Option Metriken aus, um den Leistungsindikator In-Flight-Anforderungen anzuzeigen.
- Verwenden Sie unter Berichte die Arbeitsmappe Kubelet, um die Integrität und Leistung der einzelnen Kubelet-Komponenten anzuzeigen. Weitere Informationen zu diesen Arbeitsmappen finden Sie unter Arbeitsmappen zur Ressourcenüberwachung.
Grafana
- Verwenden Sie das vordefinierte Dashboard in Managed Grafana für Kubelet, um die Integrität und Leistung jedes Kubelets anzuzeigen.
- Verwenden Sie ein Dashboard wie Kubernetes-API-Server, um eine vollständige Übersicht über die Leistung des API-Servers zu erhalten. Dies schließt Werte wie Anforderungslatenz und Verarbeitungszeit der Arbeitswarteschlange ein.
Log Analytics
Verwenden Sie Protokollabfragen mit Ressourcenprotokollen, um die von AKS-Komponenten generierten Protokolle auf Steuerungsebene zu analysieren.
Alle Konfigurationsaktivitäten für AKS werden im Aktivitätsprotokoll protokolliert. Wenn Sie das Aktivitätsprotokoll an einen Log Analytics-Arbeitsbereich senden, können Sie es mit Log Analytics analysieren. Mit der folgenden Beispielabfrage können Sie beispielsweise Datensätze zurückgeben, die ein erfolgreiches Upgrade für alle Ihre AKS-Cluster identifizieren.
AzureActivity | where CategoryValue == "Administrative" | where OperationNameValue == "MICROSOFT.CONTAINERSERVICE/MANAGEDCLUSTERS/WRITE" | extend properties=parse_json(Properties_d) | where properties.message == "Upgrade Succeeded" | order by TimeGenerated desc
Problembehandlung
- In Problembehandlungsszenarien können Sie mithilfe des unter Abrufen von Kubelet-Protokollen aus Azure Kubernetes Service-Clusterknoten (AKS) beschriebenen Prozesses auf Kubelet-Protokolle zugreifen.
Überwachungsebene 4: Kubernetes-Objekte und -Workloads
Die Ebene für Kubernetes-Objekte und -Workloads umfasst die folgenden Komponenten:
Komponente | Überwachungsanforderungen |
---|---|
Bereitstellungen | Überwachen Sie den tatsächlichen/gewünschten Zustand der Bereitstellung sowie den Status und die Ressourcenverwendung der darin ausgeführten Pods. |
Pods | Überwachen Sie den Status und die Ressourcenverwendung (einschließlich CPU und Arbeitsspeicher) der in Ihrem AKS-Cluster ausgeführten Pods. |
Container | Überwachen Sie die Ressourcenverwendung (einschließlich CPU und Arbeitsspeicher) der in Ihrem AKS-Cluster ausgeführten Container. |
Im Folgenden finden Sie gängige Szenarien für die Überwachung Ihrer Kubernetes-Objekte und -Workloads.
Container Insights
- Verwenden Sie die Ansichten Knoten und Controller, um die Integrität und Leistung der darin ausgeführten Pods anzuzeigen, und führen Sie einen Drilldown zur Integrität und Leistung der zugehörigen Container aus.
- Verwenden Sie die Ansicht Container, um die Integrität und Leistung der Container anzuzeigen. Ausführliche Informationen zur Analyse der Containerintegrität und -leistung finden Sie unter Überwachen der Leistung Ihres Kubernetes-Clusters mit Container Insights.
- Verwenden Sie unter Berichte die Arbeitsmappe Bereitstellungen, um Bereitstellungsmetriken anzuzeigen. Weitere Informationen finden Sie unter Bereitstellungs- und HPA-Metriken mit Container Insights.
Grafana-Dashboards
- Verwenden Sie die vordefinierten Dashboards in Managed Grafana für Knoten und Pods, um deren Integrität und Leistung anzuzeigen.
- Es stehen verschiedene Kubernetes-Dashboards zur Verfügung, die die Leistung und Integrität Ihrer Knoten basierend auf den in Prometheus gespeicherten Daten visualisieren.
Livedaten
- In Problembehandlungsszenarien bietet Container Insights Zugriff auf Liveprotokolle für AKS-Container (stdout/stderror) sowie auf entsprechende Ereignisse und Podmetriken. Weitere Informationen zu dieser Funktion finden Sie unter Anzeigen von Kubernetes-Protokollen, -Ereignissen und Podmetriken in Echtzeit.
Warnungen für Plattformtechniker*innen
Warnungen in Azure Monitor informieren Sie proaktiv über interessante Daten und Muster in Ihren Überwachungsdaten. Sie ermöglichen Ihnen, Probleme in Ihrem System zu identifizieren und zu beheben, bevor Ihre Kunden sie bemerken. Wenn Sie über eine vorhandene ITSM-Lösung für die Warnungserstellung verfügen, können Sie diese in Azure Monitor integrieren. Sie können außerdem Arbeitsbereichsdaten exportieren, um Daten aus Ihrem Log Analytics-Arbeitsbereich an einen anderen Standort zu senden, der Ihre aktuelle Warnungslösung unterstützt.
Warnungstypen
In der folgenden Tabelle werden die verschiedenen Arten von benutzerdefinierten Warnungsregeln beschrieben, die Sie basierend auf den Daten der zuvor beschriebenen Dienste erstellen können.
Alarmtyp | Beschreibung |
---|---|
Prometheus-Warnungen | Prometheus-Warnungen werden in der Prometheus-Abfragesprache (Prom QL) geschrieben und auf Prometheus-Metriken angewendet, die im Azure Monitor-Dienst für Prometheus gespeichert sind. Die empfohlenen Warnungen enthalten bereits die gängigsten Prometheus-Warnungen, und Sie können bei Bedarf zusätzliche Warnungsregeln erstellen. |
Metrikwarnungsregeln | Metrikwarnungsregeln verwenden die gleichen Metrikwerte wie der Metrik-Explorer. Es ist sogar möglich, direkt im Metrik-Explorer eine Warnungsregel mit den Daten zu erstellen, die Sie gerade analysieren. Metrikwarnungsregeln können nützlich sein, um Warnungen zur AKS-Leistung unter Verwendung der Werte in AKS-Datenreferenzmetriken auszugeben. |
Warnungsregeln für die Protokollsuche | Verwenden Sie Warnungsregeln für die Protokollsuche, um aus den Ergebnissen einer Protokollabfrage eine Warnung zu generieren. Weitere Informationen finden Sie unter Erstellen von Protokollsuchwarnungen auf der Grundlage von Containererkenntnissen und Abfragen von Protokollen aus Containererkenntnissen. |
Empfohlene Warnungen
Beginnen Sie mit einem Satz empfohlener Prometheus-Warnungen aus Metrikwarnungsregeln in Container Insights (Vorschau), die die häufigsten Warnbedingungen für einen Kubernetes-Cluster enthalten. Sie können zu einem späteren Zeitpunkt weitere Warnungsregeln hinzufügen, wenn Sie zusätzliche Warnbedingungen ermitteln.
Developer
Neben der Entwicklung der Anwendung kümmern sich die Entwickler*innen auch um die Wartung der Anwendung, die auf dem Cluster ausgeführt wird. Sie sind verantwortlich für den anwendungsspezifischen Datenverkehr, darunter auch für die Anwendungsleistung und für Fehler, und sorgen für die Aufrechterhaltung der Anwendungszuverlässigkeit gemäß den vom Unternehmen definierten SLAs.
Azure-Dienste für Entwickler*innen
In der folgenden Tabelle werden die Dienste aufgelistet, die von Entwicklern üblicherweise zur Überwachung der Integrität und Leistung der Anwendung, die auf dem Cluster ausgeführt wird, verwendet werden.
Dienst | Beschreibung |
---|---|
Application Insights | Azure Monitor-Feature, das die Überwachung der Anwendungsleistung (APM) ermöglicht, um die in Ihrem Kubernetes-Cluster ausgeführten Anwendungen von der Entwicklung über den Test bis hin zur Produktion zu überwachen. Mithilfe verteilter Ablaufverfolgungen können Latenz- und Zuverlässigkeitsprobleme schnell identifiziert und entschärft werden. Unterstützt OpenTelemetry für eine anbieterneutrale Instrumentierung. |
Informationen zu den Optionen bei der Konfiguration der Datenerfassung für eine in Ihrem Cluster ausgeführten Anwendung sowie Entscheidungskriterien für die beste Methode zur Erfüllung Ihrer speziellen Anforderungen finden Sie unter Grundlagen der Datenerfassung von Azure Monitor Application Insights.
Überwachungsebene 5: Anwendung
Im Folgenden finden Sie gängige Szenarien für die Überwachung Ihrer Anwendung.
Anwendungsleistung
- Verwenden Sie die Leistungsansicht in Application Insights, um die Leistung verschiedener Vorgänge in Ihrer Anwendung anzuzeigen.
- Verwenden Sie den .NET Profiler, um Leistungsablaufverfolgungen für Ihre Anwendung zu erfassen und anzuzeigen.
- Verwenden Sie die Anwendungsübersicht, um Abhängigkeiten zwischen Ihren Anwendungskomponenten anzuzeigen und eventuelle Engpässe zu identifizieren.
- Aktivieren Sie die verteilte Ablaufverfolgung, die einen Leistungs-Profiler bereitstellt, der wie ein Aufrufstapel für Cloud- und Microservicearchitekturen funktioniert, um einen besseren Einblick in die Interaktion zwischen Diensten zu erhalten.
Anwendungsfehler
- Verwenden Sie die Registerkarte Fehler von Application Insights, um die Anzahl der fehlerhaften Anforderungen und die häufigsten Ausnahmen anzuzeigen.
- Stellen Sie sicher, dass Warnungen für Fehleranomalien, die mithilfe der intelligenten Erkennung ermittelt werden, ordnungsgemäß konfiguriert sind.
Systemüberwachung
- Erstellen Sie in Application Insights einen Verfügbarkeitstest, um mithilfe eines regelmäßig durchgeführten Tests die Verfügbarkeit und Reaktionsfähigkeit Ihrer Anwendung zu überwachen.
- Verwenden Sie den SLA-Bericht, um die SLA für Webtests zu berechnen und zu melden.
- Nutzen Sie Anmerkungen, um zu erkennen, wann ein neuer Build bereitgestellt wird, damit Sie etwaige Leistungsänderungen nach der Aktualisierung visuell überprüfen können.
Anwendungsprotokolle
- Container Insights sendet stdout/stderr-Protokolle an einen Log Analytics-Arbeitsbereich. Eine Beschreibung der verschiedenen Protokolle finden Sie unter Ressourcenprotokolle und eine Liste der Tabellen, an die sie gesendet werden, unter Kubernetes-Dienste.
Dienstnetz
- Für AKS-Cluster sollten Sie das Istio-basierte Dienstnetz-Add-On bereitstellen, das Einblick in Ihre Microservicesarchitektur ermöglicht. Istio ist ein Open-Source-Dienstnetz, das transparent auf vorhandenen verteilten Anwendungen aufsetzt. Das Add-On unterstützt die Bereitstellung und Verwaltung von Istio für AKS.
Siehe auch
- Eine Anleitung zur Überwachung speziell für Azure Kubernetes Service (AKS) finden Sie unter Überwachen von AKS.