Delen via


Kubernetes-clusters bewaken met azure Monitor en cloudeigen hulpprogramma's

Kubernetes-bewaking in Azure Monitor beschrijft de Azure Monitor-services die worden gebruikt om volledige bewaking te bieden van uw Kubernetes-omgeving en de workloads die erop worden uitgevoerd. Dit artikel bevat aanbevolen procedures voor het gebruik van deze services om de verschillende lagen van uw Kubernetes-omgeving te bewaken op basis van de typische rollen die deze beheren.

Hieronder volgt een afbeelding van een gemeenschappelijk model van een typische Kubernetes-omgeving, te beginnen vanuit de infrastructuurlaag via toepassingen. Elke laag heeft verschillende bewakingsvereisten die worden aangepakt door verschillende services en die doorgaans worden beheerd door verschillende rollen in de organisatie.

Diagram van lagen van kubernetes-omgeving met gerelateerde beheerdersrollen.

Verantwoordelijkheid voor de verschillende lagen van een Kubernetes-omgeving en de toepassingen die ervan afhankelijk zijn, worden doorgaans aangepakt door meerdere rollen. Afhankelijk van de grootte van uw organisatie kunnen deze rollen worden uitgevoerd door verschillende personen of zelfs verschillende teams. In de volgende tabel worden de verschillende rollen beschreven, terwijl in de onderstaande secties de monitoringscenario's worden gepresenteerd die men doorgaans tegenkomt.

Rollen Beschrijving
Ontwikkelaar Ontwikkel en onderhoud de toepassing die wordt uitgevoerd op het cluster. Verantwoordelijk voor toepassingsspecifiek verkeer, waaronder de prestaties en fouten van de toepassing. Onderhoudt de betrouwbaarheid van de toepassing volgens SLA's.
Platformengineer Verantwoordelijk voor het Kubernetes-cluster. Het platform inrichten en onderhouden dat door de ontwikkelaar wordt gebruikt.
Netwerktechnicus Verantwoordelijk voor het verkeer tussen workloads en voor inkomend en uitgaand verkeer binnen het cluster. Analyseert netwerkverkeer en voert bedreigingsanalyses uit.

Netwerktechnicus

De netwerktechnicus is verantwoordelijk voor verkeer tussen workloads en inkomend/uitgaand verkeer met het cluster. Ze analyseren netwerkverkeer en voeren bedreigingsanalyses uit.

Diagram van lagen van de Kubernetes-omgeving voor netwerktechnicus.

Niveau 1 bewaken - Netwerk

Hieronder volgen veelvoorkomende scenario's voor het bewaken van het netwerk.

Platform Engineer

De platformengineer, ook wel de clusterbeheerder genoemd, is zelf verantwoordelijk voor het Kubernetes-cluster. Ze inrichten en onderhouden het platform dat door ontwikkelaars wordt gebruikt. Ze moeten de status van het cluster en de bijbehorende onderdelen begrijpen en eventuele gedetecteerde problemen kunnen oplossen. Ze moeten ook inzicht krijgen in de kosten voor het gebruik van het cluster en mogelijk om kosten toe te wijzen aan verschillende teams.

Diagram van lagen van de Kubernetes-omgeving voor platformengineer.

Grote organisaties kunnen ook een vlootarchitect hebben, die vergelijkbaar is met de platformtechnicus, maar verantwoordelijk is voor meerdere clusters. Ze hebben zichtbaarheid nodig in de hele omgeving en moeten beheertaken op schaal uitvoeren. In de onderstaande richtlijnen zijn aanbevelingen op grote schaal opgenomen. Zie Wat is Azure Kubernetes Fleet Manager? voor meer informatie over het maken van een Fleet-resource voor scenario's met meerdere clusters en scenario's op schaal.

Bewaking configureren voor platformengineer

In de onderstaande secties worden de stappen voor het bewaken van uw Kubernetes-omgeving geïdentificeerd met behulp van de Azure-services in Containerniveaus. Er zijn functionaliteits- en integratieopties beschikbaar om u te helpen bepalen waar u mogelijk deze configuratie moet wijzigen om te voldoen aan uw specifieke vereisten. Onboarding van managed Prometheus en container logging kan deel uitmaken van dezelfde ervaring als beschreven in Bewaking inschakelen voor Kubernetes-clusters. In de volgende secties wordt elk afzonderlijk beschreven, zodat u rekening kunt houden met al uw onboarding- en configuratieopties voor elk ervan.

Scraping van Prometheus-metrische gegevens inschakelen

Belangrijk

Als u de beheerde Azure Monitor-service voor Prometheus wilt gebruiken, moet u een Azure Monitor-werkruimte hebben. Zie de Azure Monitor-werkruimtearchitectuur voor meer informatie over ontwerpoverwegingen voor een werkruimteconfiguratie.

Schakel het scrapen van Prometheus-metrics in door middel van de door Azure Monitor beheerde Prometheus-service, bij het maken van uw cluster of door de functionaliteit toe te voegen aan een bestaand cluster. Zie Metrische gegevens van Prometheus inschakelen voor meer informatie.

Als u al een Prometheus-omgeving hebt die u wilt gebruiken voor uw AKS-clusters, schakelt u de beheerde Azure Monitor-service voor Prometheus in en gebruikt u vervolgens extern schrijven om gegevens naar uw bestaande Prometheus-omgeving te verzenden. U kunt ook extern schrijven gebruiken om gegevens te verzenden vanuit uw bestaande zelfbeheerde Prometheus-omgeving naar de beheerde Azure Monitor-service voor Prometheus.

Zie de standaardconfiguratie voor metrische prometheus-gegevens in Azure Monitor voor meer informatie over de metrische gegevens die standaard worden verzameld en de bijbehorende verzamelingsfrequentie. Als u de configuratie wilt aanpassen, raadpleegt u Het aanpassen van het scrapen van Prometheus-metrieken in de beheerde Azure Monitor-service voor Prometheus-metrieken.

Grafana inschakelen voor analyse van Prometheus-gegevens

Notitie

Azure Monitor-dashboards met Grafana is momenteel in openbare preview en kan Managed Grafana vervangen. Deze versie van Grafana heeft geen kosten, vereist geen configuratie en presenteert dashboards in Azure Portal. Gebruik Managed Grafana als u dashboards wilt maken die gegevens uit meerdere gegevensbronnen combineren of als u wilt integreren met een bestaande Grafana-omgeving.

Maak een exemplaar van Managed Grafana en koppel deze aan uw Azure Monitor-werkruimte , zodat u uw Prometheus-gegevens als gegevensbron kunt gebruiken. U kunt deze configuratie ook handmatig uitvoeren met behulp van een door Azure Monitor beheerde service voor Prometheus als gegevensbron toevoegen. Er zijn verschillende vooraf gedefinieerde dashboards beschikbaar voor het bewaken van Kubernetes-clusters, waaronder verschillende die vergelijkbare informatie presenteren als Container Insights-weergaven.

Als u een bestaande Grafana-omgeving hebt, kunt u deze blijven gebruiken en de beheerde Azure Monitor-service voor Prometheus als gegevensbron toevoegen. U kunt de Azure Monitor-gegevensbron ook toevoegen aan Grafana om gegevens te gebruiken die zijn verzameld door Container Insights in aangepaste Grafana-dashboards. Voer deze configuratie uit als u zich wilt richten op Grafana-dashboards in plaats van de Container Insights-weergaven en -rapporten te gebruiken.

Verzameling containerlogboeken inschakelen

Belangrijk

Als u de beheerde Azure Monitor-service voor Prometheus wilt gebruiken, moet u een Log Analytics-werkruimte hebben. Zie de Azure Monitor-werkruimtearchitectuur voor meer informatie over ontwerpoverwegingen voor een werkruimteconfiguratie.

Wanneer u het verzamelen van containerlogboeken voor uw Kubernetes-cluster inschakelt, implementeert Azure Monitor een containerversie van de Azure Monitor-agent waarmee stdout-/stderr- en infrastructuurlogboeken worden verzonden naar een Log Analytics-werkruimte in Azure Monitor, waar ze kunnen worden geanalyseerd met behulp van Kusto Query Language (KQL).<

Zie Bewaking voor AKS-clusters inschakelen voor vereisten en configuratieopties voor het onboarden van uw Kubernetes-clusters. Onboarden met behulp van Azure Policy om ervoor te zorgen dat alle clusters een consistente configuratie behouden.

Zodra containerlogboekregistratie is ingeschakeld voor een cluster, voert u de volgende acties uit om de installatie te optimaliseren.

Als u een bestaande oplossing hebt voor het verzamelen van logboeken, volgt u de richtlijnen voor dat hulpprogramma of schakelt u logboekverzameling in met Azure Monitor en gebruikt u de functie voor gegevensexport van de Log Analytics-werkruimte om gegevens naar Azure Event Hubs te verzenden om door te sturen naar alternatieve systemen.

Logboeken van besturingsvlak verzamelen voor AKS-clusters

De logboeken voor AKS-besturingsvlakonderdelen worden in Azure geïmplementeerd als resourcelogboeken. Maak een diagnostische instelling voor elk AKS-cluster om resourcelogboeken naar een Log Analytics-werkruimte te verzenden. Gebruik Azure Policy om een consistente configuratie voor meerdere clusters te garanderen.

Er zijn kosten verbonden aan het verzenden van resourcelogboeken naar een werkruimte, dus u moet alleen de logboekcategorieën verzamelen die u wilt gebruiken. Zie Resourcelogboeken voor een beschrijving van de categorieën die beschikbaar zijn voor AKS. Begin met het verzamelen van een minimaal aantal categorieën en wijzig vervolgens de diagnostische instelling om extra categorieën te verzamelen naarmate uw behoeften toenemen en naarmate u de bijbehorende kosten begrijpt. U kunt logboeken verzenden naar een Azure-opslagaccount om de kosten te verlagen als u de informatie om nalevingsredenen wilt bewaren. Zie prijzen voor Azure Monitor-logboeken voor meer informatie over de kosten voor het opnemen en behouden van logboekgegevens.

Als u niet zeker weet welke resourcelogboeken in eerste instantie moeten worden ingeschakeld, gebruikt u de volgende aanbevelingen, die zijn gebaseerd op de meest voorkomende klantvereisten. U kunt later andere categorieën inschakelen als dat nodig is.

Categorie Inschakelen? Bestemming
kube-apiserver Inschakelen Log Analytics-werkruimte
kube-audit Inschakelen Azure Storage. Hierdoor blijven de kosten tot een minimum beperkt, maar blijven de auditlogboeken behouden als ze door een auditor worden vereist.
kube-audit-admin Inschakelen Log Analytics-werkruimte
kube-controller-manager Inschakelen Log Analytics-werkruimte
kube-scheduler Uitschakelen
automatische autoscaler voor clusters Inschakelen als automatisch schalen is ingeschakeld Log Analytics-werkruimte
bewaker Inschakelen als Microsoft Entra ID ingeschakeld is Log Analytics-werkruimte
AllMetrics Uitschakelen omdat metrische gegevens worden verzameld in Beheerde Prometheus Log Analytics-werkruimte

Als u een bestaande oplossing hebt voor het verzamelen van logboeken, volgt u de richtlijnen voor dat hulpprogramma of schakelt u logboekverzameling in met Azure Monitor en gebruikt u de functie voor gegevensexport van de Log Analytics-werkruimte om gegevens naar Azure Event Hub te verzenden om door te sturen naar een alternatief systeem.

Activiteitenlogboek verzamelen voor AKS-clusters

Configuratiewijzigingen in uw AKS-clusters worden opgeslagen in het activiteitenlogboek. Maak een diagnostische instelling om deze gegevens naar uw Log Analytics-werkruimte te verzenden om deze te analyseren met andere bewakingsgegevens. Er zijn geen kosten verbonden aan deze gegevensverzameling en u kunt de gegevens analyseren of waarschuwen met behulp van Log Analytics.

Niveau 2 bewaken - Onderdelen op clusterniveau

Het clusterniveau bevat de volgende onderdelen:

Onderdeel Bewakingsvereisten
Knooppunt Krijg inzicht in de gereedheidsstatus en prestaties van CPU-, geheugen-, schijf- en IP-gebruik voor elk knooppunt en bewaak proactief hun gebruikstrends voordat u workloads implementeert.

Hieronder volgen veelvoorkomende scenario's voor het bewaken van de onderdelen op clusterniveau.

Azure-portal

  • Gebruik het geïntegreerde bewakingsdashboard in Azure Portal om de prestaties van de knooppunten in uw cluster te bekijken, inclusief CPU- en geheugengebruik.
  • Gebruik de weergave Knooppunten om de status van elk knooppunt en de status en prestaties te zien van de pods die erop worden uitgevoerd. Zie Prestaties van Kubernetes-clusters analyseren in Azure Portal voor meer informatie over het analyseren van de status en prestaties van knooppunten.
  • Gebruik onder Rapporten de werkmappen voor knooppuntbewaking om schijfcapaciteit, schijf-IO en GPU-gebruik te analyseren. Zie Knooppuntbewakingswerkmappen voor meer informatie over deze werkmappen.
  • Selecteer werkmappen onder Bewaking en vervolgens Subnet-IP-gebruik om de IP-toewijzing en toewijzing op elk knooppunt te zien voor een geselecteerd tijdsbereik.

Grafana-dashboards

  • Gebruik het vooraf samengestelde dashboard in Managed Grafana voor Kubelet om de status en prestaties van elk dashboard te bekijken.
  • Gebruik Grafana-dashboards met metrische prometheus-waarden die betrekking hebben op schijf, zoals node_disk_io_time_seconds_total en windows_logical_disk_free_bytes om gekoppelde opslag te bewaken.
  • Er zijn meerdere Kubernetes-dashboards beschikbaar waarmee de prestaties en status van uw knooppunten worden gevisualiseerd op basis van gegevens die zijn opgeslagen in Prometheus.

Log Analytics

  • Selecteer de categorie Containers in het dialoogvenster query's voor uw Log Analytics-werkruimte voor toegang tot vooraf gedefinieerde logboekquery's voor uw cluster, inclusief de query voor het inventarislogboek van installatiekopieën waarmee gegevens worden opgehaald uit de ContainerImageInventory-tabel die is gevuld met Container Insights.

Problemen oplossen

Kostenanalyse

  • Configureer OpenCost, een opensource,leverancierneutraal CNCF-sandboxproject voor inzicht in uw Kubernetes-kosten, ter ondersteuning van uw analyse van de clusterkosten. Er worden gedetailleerde kostengegevens geëxporteerd naar Azure Storage.
  • Gebruik gegevens van OpenCost om het relatieve gebruik van het cluster uit te delen door verschillende teams in uw organisatie, zodat u de kosten tussen beide kunt toewijzen.
  • Gebruik gegevens van OpenCost om ervoor te zorgen dat het cluster de volledige capaciteit van de knooppunten gebruikt door werkbelastingen dicht te verpakken, met minder grote knooppunten in plaats van veel kleinere knooppunten.

Niveau 3 bewaken - Beheerde Kubernetes-onderdelen

Het beheerde Kubernetes-niveau bevat de volgende onderdelen:

Onderdeel Controleren
API-server Controleer de status van de API-server en identificeer eventuele toename van de belasting van aanvragen en knelpunten als de service niet beschikbaar is.
Kubelet Bewaak Kubelet om problemen met podbeheer op te lossen, pods die niet worden gestart, knooppunten die niet gereed zijn of pods die worden gedood.

Hieronder volgen veelvoorkomende scenario's voor het bewaken van uw beheerde Kubernetes-onderdelen.

Azure-portal

  • Gebruik Metrics Explorer om de teller Aanvragen voor inflight weer te geven voor het cluster.
  • Gebruik de Kubelet-werkmap om de status en prestaties van elke kubelet te bekijken.

Grafana

  • Gebruik het vooraf samengestelde dashboard in Managed Grafana voor Kubelet om de status en prestaties van elke kubelet te bekijken.
  • Gebruik een dashboard zoals Kubernetes apiserver voor een volledige weergave van de prestaties van de API-server. Dit omvat waarden zoals aanvraaglatentie en verwerkingstijd.

Log Analytics

  • Gebruik logboekquery's met resourcelogboeken om logboeken van het besturingsvlak te analyseren die zijn gegenereerd door AKS-onderdelen.

  • Alle configuratieactiviteiten voor AKS worden vastgelegd in het activiteitenlogboek. Wanneer u het activiteitenlogboek naar een Log Analytics-werkruimte verzendt, kunt u het analyseren met Log Analytics. De volgende voorbeeldquery kan bijvoorbeeld worden gebruikt om records te retourneren die een geslaagde upgrade in al uw AKS-clusters identificeren.

    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
    

Problemen oplossen

Niveau 4 bewaken - Kubernetes-objecten en -workloads

Het niveau van Kubernetes-objecten en workloads bevat de volgende onderdelen:

Onderdeel Bewakingsvereisten
Implementaties Controleer de werkelijke versus gewenste status van de implementatie en de status en het resourcegebruik van de pods die erop worden uitgevoerd.
Peulen Controleer de status en het resourcegebruik, inclusief CPU en geheugen, van de pods die worden uitgevoerd op uw AKS-cluster.
Verpakkingen Bewaak het resourcegebruik, inclusief CPU en geheugen, van de containers die worden uitgevoerd op uw AKS-cluster.

Hieronder volgen veelvoorkomende scenario's voor het bewaken van uw Kubernetes-objecten en -workloads.

Azure-portal

Grafana-dashboards

  • Gebruik de vooraf gemaakte dashboards in Managed Grafana voor knooppunten en pods om hun status en prestaties te bekijken.
  • Er zijn meerdere Kubernetes-dashboards beschikbaar waarmee de prestaties en status van uw knooppunten worden gevisualiseerd op basis van gegevens die zijn opgeslagen in Prometheus.

Livegegevens

  • In scenario's voor probleemoplossing biedt Container Insights toegang tot live AKS-containerlogboeken (stdout/stderror), gebeurtenissen en metrische podgegevens. Zie Hoe u kubernetes-logboeken, gebeurtenissen en metrische podgegevens in realtime kunt weergeven voor meer informatie over deze functie.

Waarschuwingen voor de platformengineer

Waarschuwingen in Azure Monitor stellen u proactief op de hoogte van interessante gegevens en patronen in uw bewakingsgegevens. Hiermee kunt u problemen in uw systeem identificeren en oplossen voordat uw klanten ze opmerken. Als u een bestaande ITSM-oplossing voor waarschuwingen hebt, kunt u deze integreren met Azure Monitor. U kunt ook werkruimtegegevens exporteren om gegevens vanuit uw Log Analytics-werkruimte te verzenden naar een andere locatie die ondersteuning biedt voor uw huidige waarschuwingsoplossing.

Waarschuwingstypen

In de volgende tabel worden de verschillende typen aangepaste waarschuwingsregels beschreven die u kunt maken op basis van de gegevens die zijn verzameld door de hierboven beschreven services.

Waarschuwingstype Beschrijving
Prometheus-waarschuwingen Prometheus-waarschuwingen worden geschreven in Prometheus Query Language (Prom QL) en toegepast op prometheus-metrische gegevens die zijn opgeslagen in beheerde Azure Monitor-services voor Prometheus. Aanbevolen waarschuwingen bevatten al de meest voorkomende Prometheus-waarschuwingen en u kunt zo nodig extra waarschuwingsregels maken.
Regels voor metrische waarschuwingen Metrische waarschuwingsregels gebruiken dezelfde metrische waarden als de Metrics Explorer. U kunt zelfs rechtstreeks vanuit de Metrics Explorer een waarschuwingsregel maken met de gegevens die u momenteel analyseert. Metrische waarschuwingsregels kunnen handig zijn voor het waarschuwen over AKS-prestaties door middel van de waarden in referentiemetingen van AKS-gegevens.
Waarschuwingsregels voor zoeken in logboeken Gebruik waarschuwingsregels voor zoeken in logboeken om een waarschuwing te genereren op basis van de resultaten van een logboekquery. Zie Logboekzoekwaarschuwingen maken van Container Insights en logboeken opvragen vanuit Container Insights voor meer informatie.

Begin met een set aanbevolen Prometheus-waarschuwingen uit metrische waarschuwingsregels in Container Insights (preview) die de meest voorkomende waarschuwingsvoorwaarden voor een Kubernetes-cluster bevatten. U kunt later meer waarschuwingsregels toevoegen wanneer u aanvullende waarschuwingsvoorwaarden identificeert.

Ontwikkelaar

Naast het ontwikkelen van de toepassing onderhoudt de ontwikkelaar de toepassing die op het cluster wordt uitgevoerd. Ze zijn verantwoordelijk voor toepassingsspecifiek verkeer, waaronder toepassingsprestaties en fouten en het onderhouden van de betrouwbaarheid van de toepassing volgens door het bedrijf gedefinieerde SLA's.

Diagram van lagen van de Kubernetes-omgeving voor ontwikkelaars.

Monitorniveau 5 - Applicatie

Implementeer de Azure Monitor OpenTelemetry Distro om Application Insights-ervaringen in te schakelen en steekproeven te configureren om de kosten te beheren.

Application Insights-ervaringen

Toepassingslogboeken

  • Container insights verzendt stdout-/stderr-logboeken naar een Log Analytics-werkruimte. Zie Resource logs voor een beschrijving van de verschillende logboeken en Kubernetes Services voor een lijst van de tabellen waarnaar elk wordt verzonden.

Service-mesh

  • Implementeer voor AKS-clusters de op Istio gebaseerde service mesh-invoegtoepassing die waarneembaarheid biedt voor uw microservicesarchitectuur. Istio is een opensource-service-mesh die transparant wordt gelaagd op bestaande gedistribueerde toepassingen. De invoegtoepassing helpt bij de implementatie en het beheer van Istio for AKS.

Zie ook