Övervakning i Azure Kubernetes Services
Dricks
Det här innehållet är ett utdrag från eBook, Architecting Cloud Native .NET Applications for Azure, tillgängligt på .NET Docs eller som en kostnadsfri nedladdningsbar PDF som kan läsas offline.
Den inbyggda loggningen i Kubernetes är primitiv. Det finns dock några bra alternativ för att få ut loggarna från Kubernetes och till en plats där de kan analyseras korrekt. Om du behöver övervaka dina AKS-kluster är det en bra lösning att konfigurera Elastic Stack for Kubernetes.
Azure Monitor för containrar
Azure Monitor for Containers stöder användning av loggar från inte bara Kubernetes utan även från andra orkestreringsmotorer som DC/OS, Docker Swarm och Red Hat OpenShift.
Bild 7-10. Använda loggar från olika containrar
Prometheus är en populär öppen källkod måttövervakningslösning. Det är en del av Cloud Native Compute Foundation. Att använda Prometheus kräver vanligtvis att du hanterar en Prometheus-server med en egen butik. Azure Monitor for Containers tillhandahåller dock direkt integrering med Prometheus-måttslutpunkter, så en separat server krävs inte.
Logg- och måttinformation samlas inte bara in från containrar som körs i klustret utan även från själva klustervärdarna. Det gör det möjligt att korrelera logginformation från de två, vilket gör det mycket enklare att spåra ett fel.
Installationen av logginsamlaren skiljer sig åt i Windows- och Linux-kluster. Men i båda fallen implementeras loggsamlingen som en Kubernetes DaemonSet, vilket innebär att logginsamlaren körs som en container på var och en av noderna.
Oavsett vilken orkestrerare eller operativsystem som kör Azure Monitor-daemon vidarebefordras logginformationen till samma Azure Monitor-verktyg som användarna är bekanta med. Den här metoden säkerställer en parallell upplevelse i miljöer som blandar olika loggkällor, till exempel en Kubernetes-hybridmiljö/Azure Functions-miljö.
Bild 7-11. En exempelinstrumentpanel som visar loggnings- och måttinformation från många containrar som körs.
Log.Finalize()
Loggning är en av de mest förbisedda och ändå viktigaste delarna i distributionen av alla program i stor skala. I takt med att programstorleken och komplexiteten ökar ökar också svårigheten att felsöka dem. Att ha loggar av högsta kvalitet tillgängliga gör felsökning mycket enklare och flyttar det från området "nästan omöjligt" till "en trevlig upplevelse".