Dela via


Övervaka distributioner av arbetsbelastningar

Den här artikeln ingår i en serie. Börja med översikten.

Det är viktigt att övervaka hälsotillståndet och prestandan för dina Kubernetes-arbetsbelastningar för att säkerställa att de körs optimalt. Azure Kubernetes Service (AKS) har flera verktyg som du kan använda för att kontrollera hälsotillståndet och prestandan för dina distributioner, DaemonSet funktioner och tjänster.

Verktyg

Det är viktigt att avgöra om alla distributioner och DaemonSet funktioner körs. Den här artikeln beskriver hur du avgör om replikerna i de redo och tillgängliga tillstånden matchar det förväntade antalet repliker med hjälp av:

  • Azure-portalen.
  • Container insights-funktionen i Azure Monitor.
  • Kommandoradsverktyget kubectl.
  • Prometheus och Grafana.

Azure-portalen

Du kan använda Azure-portalen för att verifiera hälsotillståndet för följande komponenter i dina arbetsbelastningar. Mer information finns i Åtkomst till Kubernetes-resurser från Azure-portalen.

Distribution, ReplicaSet, StatefulSetoch DaemonSet

Kontrollera att antalet repliker som är i ett redo tillstånd matchar antalet önskade repliker. Portalen visar:

  • Antalet repliker som för närvarande är tillgängliga och redo att hantera trafik. Dessa repliker har schemalagts till arbetsnoder, slutfört startprocessen och klarat beredskapskontrollerna.

  • Önskat antal repliker som angetts för distributionen eller antalet repliker som distributionen syftar till att underhålla. Kubernetes-distributionskontrollanten övervakar kontinuerligt distributionens tillstånd och ser till att det faktiska antalet repliker matchar det önskade antalet.

Tjänster och ingresser

Kontrollera att statusen är ok för alla tjänster och ingresser.

Lagring

Kontrollera att statusen är bunden till alla beständiga volymanspråk och beständiga volymer.

Containerinsikter

Containerinsikter är en funktion i Monitor som tillhandahåller övervakningsfunktioner för containerarbetsbelastningar som distribueras till AKS eller hanteras av Azure Arc-aktiverade Kubernetes. Den här funktionen samlar in prestanda- och hälsoinformation, till exempel minnes- och processormått från styrenheter, noder och containrar. Den samlar också in containerloggar för analys.

Du kan använda olika vyer och fördefinierade arbetsböcker för att analysera insamlade data. Granska prestanda och beteende för olika komponenter i klustret. Med containerinsikter kan du få insikter om det övergripande tillståndet för dina containerarbetsbelastningar så att du kan fatta välgrundade beslut för att optimera deras prestanda och felsöka problem.

Du kan använda containerinsikter för att:

  • Identifiera resursflaskhalsar genom att identifiera containrar som körs på varje nod och deras processor- och minnesanvändning.

  • Identifiera processor- och minnesanvändningen för containergrupper och deras containrar som finns i containerinstanser.

  • Visa kontrollantens eller poddens övergripande prestanda genom att identifiera var containern finns i en kontrollant eller en podd.

  • Granska resursanvändningen för arbetsbelastningar som körs på värden och som inte är relaterade till de standardprocesser som stöder podden.

  • Förstå beteendet för ett kluster under genomsnittlig och tung belastning så att du kan identifiera kapacitetsbehoven och fastställa den maximala belastning som klustret kan upprätthålla.

  • Få åtkomst till aktiva containerloggar och mått som containermotorn genererar så att du kan felsöka problem i realtid.

  • Konfigurera aviseringar för att proaktivt meddela dig eller registrera när processor- och minnesanvändning på noder eller containrar överskrider dina tröskelvärden, eller när en hälsotillståndsändring sker i klustret i infrastrukturen eller nodernas hälsosammanslagning.

I Azure-portalen innehåller containerinsikter flera verktyg som hjälper dig att övervaka och analysera ett AKS-klusters hälsa och prestanda.

  • Kluster: Den här funktionen ger en översikt över ditt AKS-kluster, inklusive viktiga mått som cpu- och minnesanvändning, antal poddar och noder samt nätverkstrafik. Du kan få insikter om den övergripande hälso- och resursanvändningen i klustret.

  • Rapporter: Den här funktionen innehåller fördefinierade rapporter som du kan använda för att visualisera och analysera olika aspekter av klustrets prestanda, till exempel resursanvändning, poddhälsa och containerinsikter. Dessa data hjälper dig att förstå beteendet och prestandan för dina containrar och arbetsbelastningar.

  • Noder: Den här funktionen innehåller detaljerad information om noderna i klustret. Den visar måtten för CPU- och minnesanvändning, disk- och nätverks-I/O samt villkor och status för varje nod. Du kan använda dessa data för att övervaka enskilda nodprestanda, identifiera potentiella flaskhalsar och säkerställa effektiv resursallokering.

  • Styrenheter: Den här funktionen ger insyn i Kubernetes-styrenheterna i ditt AKS-kluster. Den visar information som antalet kontrollantinstanser, aktuellt tillstånd och status för kontrollantåtgärder. Du kan övervaka hälsotillståndet och prestandan för kontrollanter som hanterar arbetsbelastningsdistributioner, tjänster och andra resurser.

  • Containrar: Den här funktionen ger insikter om containrar som körs i ditt AKS-kluster. Den innehåller information om resursanvändning, omstarter och livscykelhändelser för varje container. Du kan använda dessa data för att övervaka och felsöka containrar i dina arbetsbelastningar.

  • Liveloggar: Funktionen liveloggar ger en liveström med logghändelser från containrar som körs, så att du kan visa containerloggar i realtid. Du kan använda dessa data för att effektivt övervaka och felsöka program och snabbt identifiera och lösa problem i dina containrar.

Mer information finns i följande resurser:

Kommandoradsverktyget

Om du vill kontrollera statusen för dina arbetsbelastningar kan du använda kubectl-kommandoradsverktyget för att kommunicera med ett Kubernetes-klusters kontrollplan via Kubernetes API.

Poddar

Kör följande kommando för att lista poddarna som körs i alla namnområden:

kubectl get pod -A

I utdata från kommandot innehåller kolumnen READY viktig information om beredskapstillståndet för poddens containrar.

Det första talet betyder antalet containrar som för närvarande är i ett klart tillstånd. Dessa containrar har skickat beredskapsavsökningarna och är beredda att hantera inkommande trafik. Det andra talet representerar det totala antalet containrar som definieras i podden, oavsett beredskapstillstånd. Den innehåller containrar som är klara och de som fortfarande initieras eller har problem.

Kontrollera att det första talet (färdiga containrar) matchar det andra talet (totalt antal containrar) för podden. Om de skiljer sig åt kanske vissa containrar inte är klara eller så kan det finnas problem som hindrar dem från att nå det klara tillståndet.

Distribution, StatefulSet, DaemonSetoch StatefulSet

Kör följande kommando för att hämta distributionerna i alla namnområden:

kubectl get deploy -A

I kommandots kubectl get deploy utdata anger siffrorna i kolumnen READY det aktuella beredskapstillståndet för replikerna i en distribution.

Det första talet representerar antalet repliker som är redo och tillgängliga för trafik. Dessa repliker har startats och klarat beredskapskontrollerna. Det andra talet representerar det önskade antalet repliker som anges i distributionskonfigurationen. Det är målantalet repliker som distributionen syftar till att underhålla.

Det är viktigt att se till att det första talet matchar det andra talet. Det anger att det önskade antalet repliker körs och är redo. Eventuella avvikelser mellan de två talen kan tyda på skalnings- eller beredskapsproblem som du måste åtgärda.

Kör följande kommando för att hämta StatefulSet-funktionerna i alla namnområden:

kubectl get statefulset -A

Kör följande kommando för att hämta DaemonSet-funktionerna i alla namnområden:

kubectl get ds -A

Du kan köra kubectl get ds kommandot för att kontrollera att en DaemonSet körs som förväntat. Du kan till exempel köra följande kommando för att kontrollera att container insights-agenten har distribuerats:

kubectl get ds ama-logs --namespace=kube-system

Om du konfigurerar AKS-klustret för att samla in Prometheus-mått i Övervaka för hanterad Prometheus kan du köra följande kommando för att kontrollera att DaemonSet är korrekt distribuerat i Linux-nodpoolerna:

kubectl get ds ama-metrics-node --namespace=kube-system

Dessa utdata innehåller information om DaemonSet funktionerna i klustret. Granska utdata för att säkerställa att antalet poddar i de redo, aktuella och önskade tillstånden är desamma. Om de är samma är det önskade antalet poddar som anges i konfigurationen DaemonSet lika med antalet poddar som körs och är redo för tillfället.

Vi rekommenderar att du utför samma kontroll för replikeringsuppsättningsfunktioner . Du kan använda följande kommando för att hämta ReplicaSet funktionerna i alla namnområden:

kubectl get rs -A

Se till att talen i dessa utdata är samma för varje tillstånd så att det avsedda antalet poddar eller repliker körs som förväntat. Avvikelser kan tyda på ett behov av ytterligare undersökning eller felsökning med hjälp av något av följande kommandon.

kubectl describe: Du kan använda kommandot kubectl describe för att få detaljerad information om Kubernetes-resurser, till exempel poddar, distributioner och tjänster. Du kan få en omfattande översikt över den angivna resursen, inklusive dess aktuella tillstånd, händelser, villkor och relaterade metadata. Informationen hämtas från Kubernetes API-servern. Det här kommandot är användbart för att felsöka och förstå status för en resurs.

Du kan köra kubectl describe pod <pod-name> för att få detaljerad information om en specifik podd, inklusive dess aktuella tillstånd, händelser, etiketter och de containrar som är associerade med den. Utdata visar information som poddstatus, händelser, volymer och villkor.

kubectl-loggar: Du kan använda kommandot kubectl logs för att hämta loggar som genereras av en container i en podd. Det här kommandot är användbart för felsökning och felsökning. Du kan visa loggarna i realtid eller hämta historiska loggar från en container.

Om du vill visa containerloggar kan du använda kommandot kubectl logs <pod-name> -c <container-name>. Ersätt <pod-name> med poddens namn. Ersätt <container-name> med namnet på containern som du vill hämta loggarna från. Om det bara finns en container i podden behöver du inte ange containernamnet. Du kan också använda -f flaggan med kubectl logs för att följa loggarna i realtid. Den här flaggan liknar tail -f Linux-kommandot.

kubectl-händelser: Du kan använda kommandot kubectl events för att felsöka när en distribution, DaemonSet, ReplicaSeteller podd inte startar eller stöter på ett problem under starten. Det här kommandot innehåller en kronologisk lista över händelser som är associerade med den angivna resursen. Du kan få insikter om vad som kan ha orsakat problemet.

Om du vill använda kubectl eventskan du köra kommandot kubectl events följt av ett specifikt resursnamn. Du kan också använda väljare för att filtrera händelser baserat på etiketter, namnområden eller andra villkor.

Om du till exempel vill hämta händelser som är relaterade till en specifik podd kan du köra kubectl events --field-selector involvedObject.name=<pod-name> --field-selector involvedObject.kind=Pod. Ersätt <pod-name> med namnet på den podd som du vill undersöka. Kommandots kubectl events utdata visar information som händelsetypen (normal eller varning), händelsemeddelandet, orsaken till händelsen och tidsstämpeln när händelsen inträffade. Du kan använda den här informationen för att avgöra vad som orsakade felet eller problemet under starten.

Om du misstänker att en specifik resurs, till exempel en distribution, DaemonSeteller ReplicaSet har problem, kan du filtrera händelser med hjälp av väljare. Visar till exempel kubectl events --field-selector involvedObject.name=<deployment-name> --field-selector involvedObject.kind=Deployment händelser som är relaterade till en specifik distribution. Granska händelser så att du kan samla in viktig information om potentiella fel, fel eller andra händelser som kan ha hindrat resursen från att starta korrekt. Använd dessa data för att felsöka och lösa problem som påverkar resursen.

Övervakning i kluster med Prometheus och Grafana

Om du distribuerar Prometheus och Grafana i ditt AKS-kluster kan du använda instrumentpanelen för K8-klusterinformation för att få insikter. Den här instrumentpanelen visar information som samlas in från Prometheus-klustermåtten, till exempel processor- och minnesanvändning, nätverksaktivitet och filsystemanvändning. Den visar också detaljerad statistik för enskilda poddar, containrar och systembaserade tjänster.

För att säkerställa hälsotillståndet och prestandan för dina distributioner, jobb, poddar och containrar kan du använda funktionerna på instrumentpanelen. Välj Distributioner för att visa antalet repliker för varje distribution och det totala antalet repliker. Välj Containrar för att visa ett diagram som visar containrar som körs, väntar, misslyckades och lyckades.

Övervaka hanterad tjänst för Prometheus och Azure Managed Grafana

Du kan använda fördefinierade instrumentpaneler för att visualisera och analysera Prometheus-mått. För att göra det måste du konfigurera DITT AKS-kluster för att samla in Prometheus-mått i Övervaka hanterad tjänst för Prometheus och ansluta din Monitor-arbetsyta till en Azure Managed Grafana-arbetsyta .

Installera de fördefinierade instrumentpanelerna för att få en omfattande vy över Kubernetes-klustrets prestanda och hälsa. Detaljerade installationsinstruktioner finns i Prometheus monitoring mixin for Kubernetes (Prometheus monitoring mixin for Kubernetes). Instrumentpanelerna etableras i den angivna Azure Managed Grafana-instansen i mappen Managed Prometheus . Några instrumentpaneler är:

  • Kubernetes/Beräkningsresurser/Kluster
  • Kubernetes/Beräkningsresurser/Namnområde (poddar)
  • Kubernetes/Beräkningsresurser/Nod (poddar)
  • Kubernetes/Beräkningsresurser/Podd
  • Kubernetes/Beräkningsresurser/Namnområde (arbetsbelastningar)
  • Kubernetes/Beräkningsresurser/Arbetsbelastning
  • Kubernetes/Kubelet
  • Nodexportör/USE-metod/Nod
  • Nodexportör/noder
  • Kubernetes/Beräkningsresurser/Kluster (Windows)
  • Kubernetes/Beräkningsresurser/Namnområde (Windows)
  • Kubernetes/Beräkningsresurser/Podd (Windows)
  • Kubernetes/USE-metod/Kluster (Windows)
  • Kubernetes/USE-metod/Nod (Windows)

Dessa inbyggda instrumentpaneler används ofta i communityn med öppen källkod för övervakning av Kubernetes-kluster med Prometheus och Grafana. Använd dessa instrumentpaneler för att se mått, till exempel resursanvändning, poddhälsa och nätverksaktivitet. Du kan också skapa anpassade instrumentpaneler som är skräddarsydda för dina övervakningsbehov. Instrumentpaneler hjälper dig att effektivt övervaka och analysera Prometheus-mått i ditt AKS-kluster, vilket gör att du kan optimera prestanda, felsöka problem och säkerställa en smidig drift av dina Kubernetes-arbetsbelastningar.

Du kan använda instrumentpanelen Kubernetes/Compute Resources/Node (Pods) för att se mått för dina Linux-agentnoder. Du kan visualisera CPU-användning, CPU-kvot, minnesanvändning och minneskvot för varje podd.

Kubernetes/Compute Resources/Pod Grafana-instrumentpanelen ger insikter om resursförbrukning och prestandamått för ett valt kluster, namnområde och podd. Du kan använda den här instrumentpanelen för att hämta mått som rör CPU-användning, CPU-begränsning, CPU-kvot, minnesanvändning, minneskvot, nätverksmått och lagringsmått. På instrumentpanelen väljer du ett AKS-kluster, ett namnområde och en podd i det valda namnområdet för att se följande information:

  • CPU-användning: Det här diagrammet visar CPU-användningen över tid för den valda podden. Du kan granska cpu-förbrukningsmönstret och identifiera potentiella toppar eller avvikelser.

  • CPU-begränsning: Det här diagrammet ger insikter om CPU-begränsning, vilket inträffar när en podd överskrider sina cpu-resursgränser. Övervaka det här måttet för att identifiera områden där poddens prestanda är begränsad på grund av CPU-begränsning.

  • CPU-kvot: Det här diagrammet visar den allokerade CPU-kvoten för den valda podden. Om podden överskrider sin tilldelade CPU-kvot kan det kräva resursjusteringar.

  • Minnesanvändning: Det här diagrammet visar minnesanvändningen för den valda podden. Övervaka minnesförbrukningsmönstret och identifiera eventuella minnesrelaterade problem.

  • Minneskvot: Det här diagrammet visar poddens allokerade minneskvot. Om podden överskrider sin tilldelade minneskvot kan det tyda på ett behov av resursoptimering.

  • Nätverksmått: Dessa diagram visar den mottagna och överförda bandbredden samt hastigheten för mottagna och överförda paket. Dessa mått hjälper dig att övervaka nätverksanvändningen och identifiera eventuella flaskhalsar eller avvikelser i nätverket.

  • Lagringsmått: Det här avsnittet innehåller information om lagringsrelaterade mått, till exempel I/O-åtgärder per sekund (IOPS) och dataflöde. Övervaka dessa mått för att mäta prestanda och effektivitet för poddlagringen.

Du kan använda kubernetes/beräkningsresurser/Pod Grafana-instrumentpanelen för att få insikter om resursanvändning, prestanda och beteende för poddar i ditt Kubernetes-kluster. Använd den här informationen för att optimera resursallokering, felsöka prestandaproblem och fatta välgrundade beslut för att säkerställa att dina containerbaserade arbetsbelastningar fungerar smidigt.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Övriga medarbetare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg