Monitoring en logging voor Kubernetes

Monitoring en logging voor Kubernetes: Hoe gebruik je het? 

In een tweetal eerdere blogs zetten we de belangrijkste monitoringtools voor Kubernetes voor je uiteen en doken we in de wereld van de monitoringssoftware van Prometheus. In deze blog zoomen we uit en kijken naar twee vormen van monitoring: architectuurmonitoring en tracing. Wat is dit precies, hoe gebruik je het en welke voordelen levert dit op voor jouw organisatie?

Wat is architectuurmonitoring?

Een Kubernetes-container kan op verschillende locaties worden gehost. Vanuit een datacenter beantwoordt een masterserver vragen vanuit clients, zoals devices van eindgebruikers. Deze masterserver fungeert hierbij als het controlerende knooppunt en centraal contactpunt voor clients. Ook een multi-master setup is overigens mogelijk, waarmee meerdere masterservers worden gebruikt. Dit vergroot de beschikbaarheid van de omgeving.

De masterserver bestaat in de praktijk uit verschillende componenten. Voorbeelden zijn de kube-apiserver, een etcd-opslag, een kube-controller-manager en een cloud-controller-manager. Denk echter ook aan een kube-scheduler en een DNS-server voor Kubernetes-services. Met behulp van architectuurmonitoring houd je de prestaties van deze architectuur continu in de gaten.

Wat maakt architectuurmonitoring van belang?

De verschillende architectuurcomponenten van Kubernetes werken nauw met elkaar samen. Prestatieproblemen in één component kunnen hierdoor invloed hebben op de prestaties van een ander component en de applicatie als geheel.

Lees ook het e-book: 26 handige Kubernetes tools voor beginners

Deze onderlinge afhankelijkheid maakt architectuurmonitoring van groot belang. Actieve monitoring helpt onder meer bij het opsporen van prestatieproblemen van individuele componenten van de architectuur. Met behulp van architectuurmonitoring achterhaal je de bron van prestatieproblemen. En kan je gericht actie ondernemen. Zo zorg je dat de prestaties van de containerized applicatie als geheel optimaal blijven.

Populaire tools

Enkele veel gebruikte tools voor architectuurmonitoring zijn onder meer:

Prometheus

Deze open-source tool is een van de meest populaire tools op het gebied van monitoring en alerting voor Kubernetes. Prometheus verzamelt gegevens vanuit Kubernetes via HTTP endpoints, die vervolgens voor analyse beschikbaar wordt gemaakt in een tijdreeks. De monitoringtool is zeer schaalbaar en geschikt voor het verwerken van grote hoeveelheden gegevens.

Lees ook: Prometheus: monitoring software voor microservices en Kubernetes

Kubelet

Deze tool verzamelt PodSpecs, YAML– of JSON-bestanden die een pod beschreven. Kubelet analyseert deze PodSpecs en brengt de status van pods in kaart. Ook verzamelt de tool meetwaarden over pods.

Container Advisor (cAdvisor)

cAdvisor is een agent die het gebruik van resources en de prestaties van containers in kaart brengt. De tool inventariseert automatisch alle containers op een systeem. Per container maakt cAdvisor statistieken inzichtelijk met betrekking tot onder meer het geheugen-, CPU- en netwerkgebruik.

Wat is distributed tracing?

In een Kubernetes-omgeving zijn applicaties vaak opgedeeld in microservices, die ieder als een losse service fungeren. De microservices werken onderling nauw samen en geven bijvoorbeeld data of input aan elkaar door. In de praktijk kan binnen een Kubernetes-applicatie sprake zijn van interactie tussen honderden verschillende microservices. Met behulp van distributed tracing monitor je deze interacties en krijg je een overzicht over de volledige Kubernetes-omgeving.

De mogelijkheden zijn divers. Zo kan je met behulp van distributed tracing onder meer de latency van microservices onderling in kaart brengen. Denk echter ook aan het in kaart brengen van bottlenecks, die de prestaties van de applicatie kunnen beïnvloeden. Een ander voorbeeld is het monitoren van de volledige levenscyclus van bijvoorbeeld een HTTP- of RPC-verzoek. Of het analyseren van de serviceafhankelijkheid. Distributed tracing speelt dan ook een cruciale rol bij root cause analysis als er problemen worden geconstateerd.

Drie frameworks

Op het gebied van distributed tracing zijn er drie leidende frameworks beschikbaar: OpenCensus, OpenTracing en OpenTelemetry. We zoomen kort in op de drie opties.

OpenCensus

OpenCensus wordt gesteund door zowel Google als Microsoft en is beschikbaar als open source tool. Het framework bevat een reeks libraries die zijn toegespitst op specifieke programmeertalen voor het instrumenteren van een applicatie, verzamelen van meetwaarden en exporteren van data naar de backend. Developers voegen OpenCensus met behulp van een agent toe aan hun code. Het framework ondersteunt onder meer Azure Monitor, DataDog, Instana, Jaeger, New Relic, SignalFX, Google Cloud Monitoring + Trace en Zipkin.

OpenTracing

OpenTracing is een specificatie voor tracing API’s die wordt gehost door de Cloud Native Computing Foundation (CNCF), een stichting die als hoeder van Kubernetes fungeert. Het doel van OpenTracing is het bieden van een gestandaardiseerde API voor tracing en is vendor-neutraal. Zo kan bijvoorbeeld eenvoudiger worden gewisseld van storage backend. Na het toevoegen van een OpenTracing-compatibele tracer aan hun code kunnen ontwikkelaars met OpenTracing aan de slag. Ook kunnen zij eigen tracers schrijven.

OpenTelemetry

OpenTelemetry combineert de mogelijkheden van OpenTracing en OpenCensus. Het raamwerk biedt een enkelvoudige reeks API’s, libraries, agents en services voor het vastleggen van meetwaarden en traces. Kenmerkend is ondersteuning voor een breed aantal programmeertalen, waaronder Java, C#, Go, JavaScript, Python, Rust, C++ en Erlang/Elixir. OpenTelemetry integreert met populaire raamwerken en libraries als MySQL, Redis, Django, Kafka, Spring, Flask en PostgreSQL. OpenTelemetry combineert hiermee de flexibiliteit van OpenTracing met het gebruiksgemak van OpenCensus.

Architectuurmonitoring of distributed tracing?

Voor Kubernetes zijn dus twee hoofdvormen van monitoring beschikbaar: architectuurmonitoring en distributed tracing. Met behulp van architectuurmonitoring breng je de prestaties en status van individuele componenten van de onderliggende architectuur van de containeromgeving in kaart. Met behulp van distributed tracing monitor je de integratie van, de samenwerking tussen en de afhankelijkheden van microservices.

Wil jij aan de slag met Kubernetes? Of ben je al bezig met Kubernetes en loop je tegen vragen omtrent monitoring en loggin aan? Onze experts denken graag met je mee. Neem contact op met ons voor meer informatie!

Monitoring en logging voor Kubernetes
Guido Bruijn
Campagne Marketeer
Categorieën: Cloud, Cloud-native

schrijf je in voor de nieuwsbrief

Ontvang de nieuwste blogs van True elke twee weken in je mail

Cloud - 23.07.2021

Dit artikel verscheen eerder op emerce.nl. Als digital agency kun je eigenlijk niet meer om cloud-native technologie heen als je niet achter wilt raken op de concurrentie, maar let dan wel op deze uitdagingen. Veel Nederlandse digital agencies hebben grote ambities als het gaat om nieuwe technologieën voor klanten in te zetten. Steeds meer agencies […]

Cloud - 19.07.2021

True neemt voor digital agencies complexiteit weg bij omarming van Kubernetes In deze blogpost gaan we in gesprek met Michiel Weitkamp, die zich als accountmanager bij True richt op digital agencies, over het selecteren en implementeren van Kubernetes. We beantwoorden de belangrijkste vragen en helpen je met zowel handvatten als praktische tips op weg. Veel […]

Cloud - 08.07.2021

Moderne IT-oplossingen worden steeds vaker gebouwd met behulp van containertechnologie. Bij deze werkwijze maak je gebruik van ‘verpakte’ microservices, inclusief de bijbehorende afhankelijkheden en configuraties. Kubernetes (Grieks voor stuurman) is een opensource platform voor het op grote schaal implementeren en beheren van containers. De combinatie van containers, Kubernetes en cloud-native technologie geeft je de mogelijkheid […]

Blijf op de hoogte en schrijf u in voor onze nieuwsbrief
Schrijf u in voor de nieuwsbrief

    Vraag offerte aan

    Vul onderstaand formulier in. True neemt zo snel mogelijk contact met u op.