AKS monitoring en management

In dit artikel geven we je op een hoog niveau meer inzicht in de mogelijkheden van het monitoren van (Azure) resources, maar AKS-clusters in het bijzonder.

In dit artikel geven we je op een hoog niveau meer inzicht in de mogelijkheden van het monitoren van (Azure) resources, maar AKS-clusters in het bijzonder. De tools die ik in dit artikel beschrijf zijn slechts het topje van de ijsberg. Er zijn namelijk zoveel tools in de markt om resources te monitoren en de mogelijkheden hiervan zijn eindeloos. Het opzetten van monitoring kost tijd en moeite. Het is daarom ook het beste om de implementatie van monitoring op te nemen in het ontwerp of de ontwikkeling van de applicatie en deze continu te verfijnen en te verbeteren in het DevOps proces.

Waarom zouden we moeten monitoren?

Stel dat je een webshop applicatie gebouwd hebt en deze opgedeeld is in verschillende microservices (kleine stukjes van processen), zoals een specifieke microservice om artikelen op een bestelling te plaatsen, een afrekenproces en een betalingsproces zodat de klant kan betalen voor de artikelen. Iedere Microservices is cruciaal voor de goede werking van de webshop, maar wat als één van deze microservices kapot gaat zonder dat je het zelf door hebt? Dan kan je bedrijf klanten verliezen, omdat ze de producten ergens anders gaan bestellen. Doordat je webshop niet bereikbaar is verlies je de klanten en gaan de orders naar de concurrent.

Dit is een van de redenen waarom monitoring zo belangrijk is. Monitoring verteld je meer over de beschikbaarheid van de applicatie, de gezondheid van de infrastructuur en over de prestaties en uiteindelijk over de gezondheid van het bedrijf.

Voordat je begint.

Als je het artikel “Azure Kubernetes cluster set up’’ hebt gevolgd dan heb je waarschijnlijk nu je eerste Azure Kubernetes Service cluster opgezet. Ook wel bekend als AKS, en heb je waarschijnlijk al enkele applicaties draaien hierop. Goed gedaan! Maar wat is nu de logische stap voor jouw AKS omgeving? Ik heb een suggestie: monitoring en beheer.
Dus laten we beginnen met de basis. Hiervoor moeten er drie command-line tools geïnstalleerd worden:

  1. AZ CLI: De Azure CLI is een set van commando’s die gebruikt worden om resources aan te maken en te beheren. Je kunt het hier downloaden en het is beschikbaar voor Windows, Linux en MacOS omgevingen.
  2. Kubectl: Dit is de command-line tool om jouw AKS omgeving te besturen en te beheren. Je kunt deze tool hier downloaden en is ook beschikbaar voor MacOS, Linux en Windows omgevingen.
  3. Helm: Helm helpt je bij het beheren van Kubernetes applicaties. Helm Charts helpt bij het definiëren, installeren en upgraden van zelfs de meest complexe Kubernetes applicatie. Je kunt Helm hier downloaden en is beschikbaar voor Linux, Windows en MacOS.

Wanneer je AKS deployed worden er automatisch een metric server en een dasboard geïnstalleerd. Om deze te zien moet je eerst verbinding maken met je cluster en hier hebben we het az-commando voor nodig. Open een command shell en voer de volgende commando’s uit:

‘az login’ opent een browsersessie om in te loggen op Microsoft Azure en je kunt deze sessie sluiten zodra je bent ingelogd. De ‘az aks’ opdracht wordt gebruikt om verbinding te maken met je AKS-cluster. Als je 1 subscriptie hebt hoef je de optie ‘subscription’ niet te gebruiken. Om te testen of de verbinding succesvol is gemaakt kun je het volgende commando uitvoeren:


De output zou je moeten vertellen dat de master, replica service, Core DNS en Metrics server draaien. Het geeft je ook een hint hoe je cluster problemen diagnosticeert.

Metrics Server

Als we hier mee klaar zijn kunnen we beginnen met de absolute basis van het monitoren van het cluster. Zoals eerder vermeld, wordt de metrics server geleverd met de AKS installatie en kan hij je meer vertellen over het geheugen- en CPU gebruik van nodes en pods. De metrics server wordt ook gebruikt voor Horizontal Pod Autoscaling, maar dit valt buiten het bereik van dit onderwerp. Je kunt de data uit de metrics server opvragen met de volgende commando’s:


Azure Monitor

Azure monitor maximaliseert de beschikbaarheid en prestatie van je applicaties en diensten door het leveren van een uitgebreide oplossing voor het verzamelen, analyseren en handelen op basis van telemetrie van jouw cloud en on-premises omgevingen.



Je kunt de gezondheid van jouw AKS cluster zien in Azure monitor door te navigeren in het Azure Portaal naar Monitor -> Workbooks -> Multi Cluster Overview.  Dan krijg je onderstaand venster te zien:



Daarnaast is het ook mogelijk om een eigen workbook te creëren op basis van eigen gedefinieerde monitor vereisten. In dit deelvenster kun je verder kiezen voor; Cluster Performance, Disk IO en Capacity en Network.

Een andere manier om hier te komen en meer inzage te krijgen over de gezondheid van jouw AKS cluster is door te navigeren in de Azure portal naar: Kubernetes Service -> SelectYourCluster -> Insights.


Probeer het maar eens en klik eens rond. Zorg er voor dat je de dropdown; View Workbooks niet mist.

Om verdere inzage te krijgen in jouw applicatie kun je ook overwegen om een instrumentatiepakket (SDK) in de toepassing te installeren. Wil je hier meer informatie over? Bekijk dan deze link.

Alternatief 3rd party tools

Er zijn ook veel 3rd party tools (betaalde oplossingen) in de markt voor full-stack (end-to-end) monitoring in Azure inclusief AKS-cluster en on-premise resources. Om er een paar op te noemen: NewRelicDatadog of Dynatrace. Dit zijn zogenaamde Application Performance Management (APM) tools, ook wel bekend als Application Performance Monitoring tools. APM staat voor het in de gaten houden van applicaties vanuit het gebruikersperspectief maar ook de back-end. Zodat de problemen en knelpunten in de applicaties vroegtijdig op te sporen zijn.

De mogelijkheid bestaat dat je al in bezit bent van een van bovenstaande tools, of een vergelijkbare tool. Kijk op de leverancierspagina van deze tool of deze ondersteuning biedt of een integratie beschikbaar heeft voor Azure.

Weave Scope

Een ander leuk open source programma is Weave Scope. Weave Scope is een visualisatie en monitoring tool voor Docker en Kubernetes en kan ook gebruikt worden om problemen te diagnosticeren. Om Weave Scope te installeren moet je onderstaande commando uitvoeren:


Om Weave Scope uit te voeren moet je onderstaand commando uitvoeren en daarna een browsersessie openen naar localhost:4040.


Let op: Stel de scope-service niet bloot aan het internet, bijvoorbeeld door het type te wijzigen naar NodePort of LoadBalancer. Scope geeft iedereen toegang tot de gebruikersinterface controle over de hosts en containers.




Prometheus en Grafana

Een veel gebruikte combinatie is Prometheus en Grafana. Prometheus is een tijdreeks database of metric server en Grafana wordt gebruikt om metrics uit verschillende databronnen, waaronder Prometheus, te visualiseren. Voor de installatie van Prometheus en Grafana wordt gebruik gemaakt van Helm. Je kunt de gevraagde helm charts op het internet vinden.
Voor dit voorbeeld heb ik gebruik gemaakt van de helm repository grafana en deze wordt alleen lokaal uitgevoerd.
Je kunt de volgende stappen uitvoeren om Prometheus en Grafana te installeren:


Je moet Prometheus toevoegen als gegevensbron in Grafana. Je kunt hier lezen hoe je dit het makkelijkste kan doen. Als je de gegevensbron hebt toegevoegd ben je klaar om het eerste dashboard te maken. Als je er zeker van bent dat beide oplossingen werken voor jou kan je er voor kiezen om een ingress-controller te creëren om Grafana naar de buitenwereld te bedienen, met Grafana als front-end en Prometheus als back-end.



Er is een grote community die de dashboards ontwikkelt die je in je eigen Grafana omgeving kan gebruiken. Je kunt ze hier vinden en hierbij een link naar een artikel waar je kan lezen hoe je dashboards kan importeren in Grafana. Natuurlijk is Prometheus niet de enige gegevensbron die je aan Grafana kan toevoegen, er zijn er meer zoals: Azure Monitor, MySQL, Graphite, Elasticsearch etc.

 

Management met Kubectl

Om je AKS cluster te beheren zul je moeten werken met de command line tool kubectl. Sinds enige tijd kun je echter ook resources beheren via de Azure portal. Houd er rekening mee dat deze functionaliteit nog steeds in de preview fase is, wat betekent dat je het nog niet in een productieomgeving zou moeten gebruiken.

Als je meer wilt weten over kubectl raad ik je aan om eens een kijkje te nemen op de kubectl cheat sheet.


Nog een laatste woord …

Als het je gelukt is om dit artikel tot het einde te lezen, dan zou je een goede basis moeten hebben om je AKS cluster te monitoren. Natuurlijk ben je niet gebonden aan een bepaald product of hulpmiddel dat we in dit artikel hebben benoemd. Als je tevreden bent met product X dan is dat prima. Als je tevreden bent met XYZ of een andere combinatie is dat natuurlijk ook geen probleem.

Het komt erop neer dat wanneer je zeker wilt zijn van een goede beschikbaarheid van je applicaties voor je bedrijf, dat je moet monitoren!

Intercept wenst je veel succes met het implementeren van monitoring, en als wij ergens mee kunnen helpen neem dan gerust contact met ons op.

 

Dit artikel is onderdeel van een reeks 

Dit is het laatste artikel van de reeks. Wil je artikelen teruglezen? Kijk hier:

1. De evolutie van AKS
2. Hybride deployments met Kubernetes
3. Microservices op AKS
4. Update scenario's AKS
5. Linux vs. Windows containers
6. Security op AKS
7. Ingress, Services, Pods & Namespaces

Wil je niets missen? Schrijf je dan hier in voor onze Intercept Insights. Dan houden we je op de hoogte van de laatste nieuwsberichten.


Bezoek onze AKS workshop

Leer nog meer over AKS door onze interactieve AKS workshop. In 1.5 uur ontvang jij de voordelen en de best practices om jouw omgeving efficiënter te maken. Middels veelvoorkomende AKS uitdagingen ben jij klaar voor AKS. Klik hier voor data in meld je aan!

Tags

  • Azure Kubernetes Services
  • Containers
  • Monitoring

Geschreven door

Martin Pronk

Martin Pronk

Azure Consultant bij Intercept

Wellicht ook interessant:

  • 20201028 Intercept Illustratie Bij Artikel Windows Containers In Een Linux Wereld 01

    Windows containers in een Linux wereld

    Een veel voorkomende vraag wanneer iemand op zoek is naar het transformeren/containeriseren van zijn oplossing is; ‘ik draai nu op een Windows systeem: moet ik Windows containers gebruiken of moet ik kiezen voor Linux containers? En dit is inderdaad een hele terechte vraag.

    • Leesduur 8min
    Meer over Windows containers in een Linux wereld
  • Azure Kubernetes Cluster Set Up

    Best practices voor het opzetten van een AKS cluster

    Kubernetes is “hot & happening”, vrijwel iedereen wil er mee aan de slag. Het aanmaken van een AKS-cluster is zo gedaan, maar gaat dat ook zo makkelijk als je Kubernetes echt in productie wilt nemen? In dit artikel geven wij belangrijke tips en best-practices voor het opzetten en gebruiken van een AKS-productie omgeving.

    • Leesduur 6min
    Meer over Best practices voor het opzetten van een AKS cluster
  • Ingress Name (2)

    Ingress, Services, Pods & Namespaces.

    Nadat je de container technologie hebt omarmd en hebt besloten dat Kubernetes gaat gebruiken, moet je aan de bak en je erin gaan verdiepen. Er is namelijk veel te leren, maar een aantal belangrijke concepten zoals Services, Pods, Ingresses en namespaces zijn van cruciaal belang voor je succes.

    • Leesduur 8min
    Meer over Ingress, Services, Pods & Namespaces.
  • Aks Security

    AKS Security

    Iedereen werkt hard aan het nieuwe platform en dan vraagt iemand... "Hoe zit het met de veiligheid?"

    • Leesduur 10min
    Meer over AKS Security
  • Ebook AKS 6

    Het Intercept AKS e-book

    Dit e-book geeft je alle informatie die je moet weten om te beslissen of Azure Kubernetes een goede match met jouw software architectuur is. Leer daarnaast ook van onze best practices omtrent o.a. security, update scenario's en het monitoren en managen van AKS clusters.

    • Leesduur 2min
    Meer over Het Intercept AKS e-book
  • Hoofdfoto Artikel AKS Updates

    Update scenario's op AKS

    In dit artikel ga ik het hebben over een heel belangrijk onderwerp: updates. Als ik zeg updates, dan bedoel ik niet alleen Kubernetes updates, maar ook de worker node OS updates. Veel mensen vergeten het patchen van het work OS in de overtuiging dat het door Microsoft wordt geregeld. Dit is niet het geval.

    • Leesduur 8min
    Meer over Update scenario's op AKS
  • 20201208 Intercept Illustratie Bij Artikel Microservices Def Verkleind

    Wat zijn Microservices op AKS?

    Veel mensen praten over Microservices en Service Mesch, maar wat is dit? In dit artikel kijken we naar wat Microservices zijn, wat een Service Mesh is en wat je ermee kunt doen en tot slot of je het nu wel echt nodig hebt

    • Leesduur 8min
    Meer over Wat zijn Microservices op AKS?
  • Going Hybris

    Hybride deployments met Kubernetes

    Ik hoor en zie online dat veel mensen praten over Microservices en Service Mesch, maar wat is dit? In dit artikel kijken we naar wat Microservices zijn, wat een Service Mesh is en wat je ermee kunt doen en tot slot of je het nu wel echt nodig hebt

    • Leesduur 7min
    Meer over Hybride deployments met Kubernetes
  • 20200819 Intcercept Artikel Illustratie Aks Cluster

    Best practices voor het opzetten van een AKS cluster

    Kubernetes is “hot & happening”, vrijwel iedereen wil er mee aan de slag. Het aanmaken van een AKS-cluster is zo gedaan, maar gaat dat ook zo makkelijk als je Kubernetes echt in productie wilt nemen? In dit artikel geven wij belangrijke tips en best-practices voor het opzetten en gebruiken van een AKS-productie omgeving.

    • Leesduur 6min
    Meer over Best practices voor het opzetten van een AKS cluster
  • Intercept Application Insights

    Application Insights: verbeter de gebruikerservaring door eenvoudig inzicht te krijgen in de performance van je applicatie [Technical Azure Hacks]

    Monitoring, analyse en het rapporteren is een vraagstuk waar vaak achteraf naar wordt gekeken waardoor het uiteindelijk uitmondt in een complex vraagstuk. Als organisatie moet je nagaan met welk doel je welke gegevens wilt verzamelen, over welke gegevens je beschikt en wat je dan inzichtelijk wil maken.

    • Leesduur 6min
    Meer over Application Insights: verbeter de gebruikerservaring door eenvoudig inzicht te krijgen in de performance van je applicatie [Technical Azure Hacks]