In de dynamische wereld van Kubernetes zijn logs essentieel voor het beheren en troubleshooten van applicaties en services in containers. We verkennen de basiscommando's voor het bekijken van logs in Kubernetes, enkele nuttige tools, en geavanceerde loggingsoplossingen zoals de ELK Stack en cloudproviderdiensten.
Gebruik kubectl logs om logs van een specifieke pod op te halen. Basisgebruik:
Minder gekend, maar zeker even handig is het bekijken van logs van één van de pods van een deployment, een service of een stateful set.
De functionaliteit van kubectl logs is ten alle tijde beschikbaar, en is zeker handig als basistool. Echter, soms wil je een iets flexibere tool, met voornamelijk minder typwerk op de CLI.
Zowel Stern als kubetail zijn tools voor het volgen van logs van meerdere pods, met ondersteuning voor filtering op podnamen, container-namen en labels. Handig om een aantal pods tegelijk op te volgen. Stern pikt ook nieuwe pods op die tijdens het uitvoeren erbij komen.
K9s biedt een interactieve UI voor het beheren van Kubernetes, inclusief het bekijken van logs en het uitvoeren van commando's binnen pods.
De tools hierboven kunnen enkel de logs weergeven die op de nodes zelf bijgehouden worden. Dit is echter beperkt in tijd en volume. Willen we de logs langere tijd bewaren, dan moeten we naar oplossingen die hiervoor specifiek gebouwd zijn.
Een ELK stack is een klassieker. Deze is niet specifiek aan kubernetes gebonden, maar wordt wel veel gebruikt. Een ELK Stack combineert Elasticsearch, Logstash en Kibana voor krachtig logbeheer.
De cloud-providers hebben hun eigen oplossingen voor het bijhouden en opvolgen van logs. Binnen AWS wordt Cloudwatch geintegreerd met Kubernetes voor het monitoren en analyseren van containerlogs. De logs worden doorzoekbaar zoals elke andere log die naar cloudwatch gestuurd wordt. Er kunnen verdere acties op ondernomen worden.Azure biedt log-collectie en analyse voor Azure Kubernetes Service aan via hun Log Monitoring product. De logs worden doorzoekbaar via queries in de UI.Google Cloud's Operations Suite biedt logging aan als optie op GKE clusters. De logs worden beschikbaar via "Log Explorer".Zowel een ELk stack als alledrie de providers geven je de mogelijkheid om met een query-achtige taal logs te gaan doorzoeken, filteren en aggregeren. Als je het wenst, kan je ook metrieken en alarmen definieren op basis van de inhoud van de logs.
Er zijn veel aanbieders van extra oplossingen bovenop de logging van Kubernetes. Dit zijn managed SaaS platformen die de logs gaan verzamelen, verwerken en terug beschikbaar stellen voor je gebruikers. De lijst is echter te lang om op te sommen en de keuze is zeer afhankelijk van de gewenste functionaliteiten.
Het opzetten en configureren van geavanceerde loggingsoplossingen zoals ELK en cloudproviderdiensten vereist specifieke kennis. Deze systemen moeten correct worden geconfigureerd om efficiënt te functioneren en waardevolle inzichten te bieden. Verkeerde configuratie kan ervoor zorgen dat je bepaalde logs mist, of dat je kosten de hoogte in schieten. Ook kunnen audit-regels (voor bv ISO or SOC2 certificiëring) specifieke wensen en eisen opleggen aan de structuur, de retentie en de backups van logs.
Effectief logbeheer in Kubernetes is cruciaal voor het onderhouden en troubleshooten van applicaties. Basiscommando's, gecombineerd met geavanceerde tools zoals Stern, K9s, de ELK Stack en cloudgebaseerde oplossingen, bieden uitgebreide mogelijkheden voor loganalyse en -beheer. Voor complexere setups is het echter aan te raden professionals in te huren om een optimale configuratie en gebruik van deze systemen te waarborgen.