Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du använder Kubernetes-händelser för att övervaka och felsöka problem i dina AkS-kluster (Azure Kubernetes Service).
Vad är Kubernetes-händelser?
Händelser är en av de mest framträdande källorna för övervaknings- och felsökningsproblem i Kubernetes. De samlar in och registrerar information om livscykeln för olika Kubernetes-objekt, till exempel poddar, noder, tjänster och distributioner. Genom att övervaka händelser kan du få insyn i klustrets aktiviteter, identifiera problem och felsöka problem effektivt.
Kubernetes-händelser bevaras inte under hela klusterlivscykeln eftersom det inte finns någon kvarhållningsmekanism. Händelser är endast tillgängliga i en timme efter att händelsen har genererats. Om du vill lagra händelser under en längre tidsperiod aktiverar du Container insights.
Kubernetes-händelseobjekt
I följande tabell visas några viktiga Kubernetes-händelseobjekt:
| Fältnamn | beskrivning |
|---|---|
| typ | Typen baseras på händelsens allvarlighetsgrad: Varningshändelser signalerar potentiellt problematiska situationer, till exempel att en podd upprepade gånger misslyckas eller att en nod får slut på resurser. De kräver uppmärksamhet, men kanske leder det inte till ett omedelbart fel. Normala händelser representerar rutinåtgärder, till exempel att en podd schemaläggs eller att distributionen skalas upp. De indikerar vanligtvis felfritt klusterbeteende. |
| orsak | Anledningen till att händelsen genererades. Till exempel FailedScheduling eller CrashLoopBackoff. |
| meddelande | Ett mänskligt läsbart meddelande som beskriver händelsen. |
| namnområde | Namnområdet för Kubernetes-objektet som händelsen är associerad med. |
| firstSeen | Tidsstämpel när händelsen först observerades. |
| lastSeen | Tidsstämpel för när händelsen senast observerades. |
| rapportstyrningController | Namnet på kontrollanten som rapporterade händelsen. Exempel: kubernetes.io/kubelet |
| objekt | Namnet på Kubernetes-objektet som händelsen är associerad med. |
Mer information finns i den officiella Kubernetes-dokumentationen.
Visa Kubernetes-händelser
Visa en lista över alla händelser i klustret med kommandot kubectl get events .
Förutsatt att klustret redan har skapats och är tillgängligt (enligt nödvändiga dokument) hämtar du autentiseringsuppgifter (observera --overwrite-existing att flaggan är inställd för att undvika kubeconfig-fel):
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --overwrite-existing
Lista nu alla händelser i klustret:
kubectl get events
Resultat:
LAST SEEN TYPE REASON OBJECT MESSAGE
xxm Normal Scheduled pod/my-pod-xxxxx Successfully assigned default/my-pod-xxxxx to aks-nodepoolxx-xxxxxxx-vmss000000
xxm Normal Pulled pod/my-pod-xxxxx Container image "nginx" already present on machine
xxm Normal Created pod/my-pod-xxxxx Created container nginx
xxm Normal Started pod/my-pod-xxxxx Started container nginx
...
Titta på en specifik podds händelser genom att först hitta namnet på podden och sedan använda kubectl describe pod kommandot .
Lista poddarna i det aktuella namnområdet:
kubectl get pods
Resultat:
NAME READY STATUS RESTARTS AGE
my-pod-xxxxx 1/1 Running 0 xxm
nginx-deployment-xxxxx 1/1 Running 0 xxm
...
Ersätt <pod-name> nedan med ditt faktiska poddnamn. Här är ett exempel på den första podden i listan för automatisering:
POD_NAME=$(kubectl get pods -o jsonpath="{.items[0].metadata.name}")
kubectl describe pod $POD_NAME
Bästa praxis för felsökning med händelser
Filtrera händelser för relevans
Du kan ha olika namnområden och tjänster som körs i ditt AKS-kluster. Om du filtrerar händelser baserat på objekttyp, namnrymd eller orsak kan du begränsa resultatet till den mest relevanta informationen.
Du kan till exempel använda följande kommando för att filtrera händelser i standardnamnområdet:
kubectl get events --namespace default
Automatisera händelsemeddelanden
Ställ in automatiserade meddelanden för att säkerställa snabba åtgärder vid kritiska händelser i AKS-klustret. Azure erbjuder integrering med övervaknings- och aviseringstjänster som Azure Monitor. Du kan konfigurera aviseringar att utlösa baserat på specifika händelsemönster. På så sätt informeras du omedelbart om viktiga frågor som kräver uppmärksamhet.
Granska händelser regelbundet
Gör en vana att regelbundet granska händelser i ditt AKS-kluster. Den här proaktiva metoden kan hjälpa dig att identifiera trender, fånga potentiella problem tidigt och förhindra eskaleringar. Genom att hålla koll på händelserna kan du upprätthålla stabiliteten och prestandan för dina program.
Nästa steg
Nu när du förstår Kubernetes-händelser kan du fortsätta din övervaknings- och observerbarhetsresa genom att aktivera Container Insights.