

Bij ACA leven en ademen we Kubernetes. We zetten nieuwe projecten standaard op met dit populaire container orkestratiesysteem en we migreren ook bestaande klanten naar Kubernetes. Als gevolg daarvan groeit het aantal Kubernetes-clusters dat het ACA-team beheert snel! We hebben onze setup meerdere keren moeten veranderen om tegemoet te komen aan meer klanten, meer clusters, meer belasting, minder onderhoud, enzovoort.
Van een Amazon ECS naar een Kubernetes setup
In 2016 hadden we veel projecten die in Docker-containers draaiden. Op dat moment draaiden onze Docker-containers in Amazon ECS of op virtuele machines van Amazon EC2 waarop de Docker-daemon draaide. Helaas vergde deze opstelling veel onderhoud. We hadden een tool nodig die ons een betrouwbare manier zou bieden om deze containers in productie te draaien. We verlangden naar een orchestrator die ons hoge beschikbaarheid, automatische opschoning van oude resources, automatische containerplanning en nog veel meer zou bieden.
→ Enter Kubernetes!
Kubernetes bleek de perfecte kandidaat te zijn voor een container orkestratietool. Het kon containers betrouwbaar in productie draaien en de hoeveelheid onderhoud die nodig was voor onze opstelling verminderen.
Een Kubernetes-gerichte aanpak creëren
Behendig als we zijn, stelden we het idee voor een Kubernetes-opstelling voor een van onze volgende projecten voor. De klant zag het potentieel van onze nieuwe aanpak en stemde ermee in om deel uit te maken van de revolutie. Begin 2017 creëerden we ons eerste Kubernetes-cluster. In dit stadium waren er slechts twee zekerheden: we wilden Kubernetes draaien en het zou op AWS draaien. Daarnaast waren er nog veel vragen en uitdagingen.
- Hoe zouden we ons cluster opzetten en beheren?
- Kunnen we onze bestaande docker-containers in het cluster draaien?
- Wat voor toegang en informatie kunnen we de ontwikkelteams geven?

We hebben geleerd dat de moeilijkste taak uiteindelijk niet het opzetten van het cluster was. In plaats daarvan bleek het creëren van een nieuwe mindset binnen ACA Group om deze nieuwe aanpak te accepteren en het betrekken van de ontwikkelteams bij onze next-gen Kubernetes setup de moeilijkste taak te zijn. Naast het zelf leren kennen van het product en het betrekken van andere teams, hadden we nog een aantal andere taken die onze aandacht vroegen:
- we moesten elke applicatie dockeriseren,
- we moesten in staat zijn om applicaties in het Kubernetes-cluster op te zetten die hoog beschikbaar en indien mogelijk ook zelfhelend waren,
- en geclusterde applicaties moesten hun status kunnen delen met behulp van de beschikbare methoden binnen de geselecteerde container netwerkinterface.
Het bleek een hele uitdaging om te wennen aan deze nieuwe manier van werken in combinatie met andere taken, zoals het opzetten van goede monitoring, een gecentraliseerde logging setup en het implementeren van onze applicaties op een consistente en onderhoudbare manier. Gelukkig konden we deze uitdagingen overwinnen en ongeveer een half jaar nadat we ons eerste Kubernetes-cluster hadden gemaakt, ging ons eerste productiecluster live (augustus 2017).

Dit waren de kernonderdelen van onze toolset anno 2017:
- Terraform zou de AWS VPC, netwerkcomponenten en andere afhankelijkheden voor het Kubernetes-cluster implementeren
- Kops voor clustercreatie en -beheer
- Een EFK-stack voor logging werd ingezet binnen het Kubernetes-cluster
- Heapster, influxdb en grafana in combinatie met Librato voor monitoring binnen het cluster
- Opsgenie voor waarschuwingen

Leuk! ... maar het kan beter: kosten, componenten en downtime verlagen
Nadat we onze eerste opstelling hadden voltooid, werd het eenvoudiger om dezelfde topologie te gebruiken en zijn we doorgegaan met het implementeren van deze opstelling voor andere klanten. Door onze infrastructure-as-code aanpak (Terraform) in combinatie met een Kubernetes cluster management tool (Kops) was de inspanning om nieuwe clusters aan te maken relatief laag.

Na een tijdje begonnen we echter een aantal mogelijke risico's op te merken met betrekking tot deze setup. De hoeveelheid werk die nodig was voor de setup en de impact van updates of upgrades op onze Kubernetes-stack was te groot. Tegelijkertijd groeide het aantal klanten dat hun eigen Kubernetes-cluster wilde. We moesten dus een aantal veranderingen doorvoeren om de onderhoudsinspanning op het Kubernetes-gedeelte van deze setup te verminderen en de zaken beheersbaar te houden voor onszelf.
Migratie naar Amazon EKS en Datadog
Op dit punt werd de Kubernetes-service van AWS (Amazon EKS) algemeen beschikbaar. We waren in staat om alle dingen die door Kops worden beheerd te verplaatsen naar onze Terraform-code, waardoor de dingen een stuk minder complex werden. Als extra voordeel worden de Kubernetes masternodes nu beheerd door EKS. Dit betekent dat we nu minder nodes hoeven te beheren en EKS biedt ons ook clusterupgrades met één druk op de knop.

Naast het verminderen van de werklast op ons Kubernetes-beheervlak, hebben we ook het aantal componenten binnen ons cluster verminderd. In de vorige opstelling gebruikten we een EFK-stack (ElasticSearch, Fluentd en Kibana) voor onze loginfrastructuur. Voor onze monitoring gebruikten we een combinatie van InfluxDB, Grafana, Heapster en Librato. Deze tools gaven ons veel flexibiliteit, maar vergden veel onderhoud, omdat ze allemaal binnen het cluster draaiden. We hebben ze allemaal vervangen door Datadog agent, waardoor onze onderhoudswerkzaamheden drastisch zijn verminderd.
Upgrades in < 60 minuten
Bovendien waren we door de migratie naar Amazon EKS en de vermindering van het aantal componenten die binnen het Kubernetes-cluster draaien, in staat om de kosten en de impact op de beschikbaarheid van onze clusterupgrades te verminderen. Met de huidige stack, die Datadog en Amazon EKS gebruikt, kunnen we een Kubernetes-cluster binnen een uur upgraden. Als we de vorige stack zouden gebruiken, zouden we daar gemiddeld 10 uur over doen.

Waar staan we nu?
Op dit moment hebben we 16 Kubernetes-clusters draaien, allemaal met de laatst beschikbare EKS-versie. Op dit moment willen we onze liefde voor Kubernetes verspreiden waar we maar kunnen.
Meerdere projectteams binnen ACA Group maken nu gebruik van Kubernetes, dus we organiseren workshops om ze te helpen snel met de technologie overweg te kunnen. Tegelijkertijd proberen we ook op de hoogte te blijven van de nieuwste toevoegingen aan dit snel veranderende platform. Daarom hebben we de Kubecon conferentie in Barcelona bijgewoond en onze meningen gedeeld in ons Kubecon Afterglow evenement.
Wat is de volgende stap?
Hoewel we erg blij zijn met onze huidige Kubernetes setup, geloven we dat er altijd ruimte is voor verbetering. Tijdens ons Kubecon Afterglow evenement hebben we een aantal interessante discussies gehad met andere Kubernetes enthousiastelingen. Deze discussies hebben ons geholpen om onze volgende stappen te definiëren en onze Kubernetes setup naar een nog hoger niveau te brengen. Enkele dingen die we in de nabije toekomst willen verbeteren:
- service mesh toevoegen aan onze Kubernetes stack,
- 100% automatische worker node upgrades zonder applicatie downtime.
Natuurlijk zijn dit maar een paar aandachtspunten. We zullen veel nieuwe functies en verbeteringen implementeren zodra ze worden vrijgegeven!
Hoe zit het met jou? Ben je geïnteresseerd in je eigen Kubernetes-cluster? Welke verbeteringen ben je van plan aan te brengen in je stack of Kubernetes setup? Of heb je een onbeantwoorde Kubernetes-vraag waarmee we je misschien kunnen helpen?
Neem contact met ons op via cloud@aca-it.be en we helpen je verder!

What others have also read


CloudBrew is altijd een hoogtepunt op onze kalender geweest, maar de editie van 2025 voelde anders. Misschien lag het aan de timing. Slechts een maand eerder, in november 2025, opende de Azure Belgium Central-regio eindelijk haar deuren. ACA opereert al altijd vanuit het hart van Europa, dus het live gaan van deze grote nationale mijlpaal net voor de conferentie zorgde voor een extra dosis enthousiasme.
Lees verder

Een betere uptime, lagere kosten en vendor lock-in vermijden. Dat zijn drie van de redenen waarom onze klanten kiezen voor een multicloud-strategie. Onze Cloud project manager Roel Van Steenberghe legt uit wat zo’n strategie precies inhoudt en wat de troeven zijn van Google Cloud Platform (GCP).
Lees verder

In de complexe wereld van moderne softwareontwikkeling worden bedrijven geconfronteerd met de uitdaging om verschillende applicaties die door verschillende teams worden ontwikkeld en beheerd, naadloos te integreren. De Service Mesh is van onschatbare waarde bij het overwinnen van deze uitdaging. In dit blogartikel verdiepen we ons in Istio Service Mesh en onderzoeken we waarom investeren in een Service Mesh zoals Istio een slimme zet is." Wat is Service Mesh? Een Service Mesh is een softwarelaag die verantwoordelijk is voor alle communicatie tussen applicaties, in deze context services genoemd. Het introduceert nieuwe functionaliteiten om de interactie tussen services te beheren, zoals monitoring, logging, tracing en verkeerscontrole. Een service mesh werkt onafhankelijk van de code van elke individuele service, waardoor het over netwerkgrenzen heen kan werken en kan samenwerken met verschillende beheersystemen. Dankzij een service mesh kunnen ontwikkelaars zich richten op het bouwen van toepassingsfuncties zonder zich zorgen te maken over de complexiteit van de onderliggende communicatie-infrastructuur. Istio Service Mesh in de praktijk Denk aan het beheren van een groot cluster waarop meerdere applicaties draaien die ontwikkeld en onderhouden worden door verschillende teams, elk met verschillende afhankelijkheden zoals ElasticSearch of Kafka. Na verloop van tijd resulteert dit in een complex ecosysteem van applicaties en containers, overzien door verschillende teams. De omgeving wordt zo ingewikkeld dat het voor beheerders steeds moeilijker wordt om het overzicht te bewaren. Dit leidt tot een reeks pertinente vragen: Hoe ziet de architectuur eruit? Welke applicaties interageren met elkaar? Hoe wordt het verkeer beheerd? Bovendien zijn er specifieke uitdagingen die voor elke afzonderlijke applicatie moeten worden aangepakt: Het afhandelen van aanmeldingsprocessen Implementeren van robuuste beveiligingsmaatregelen Netwerkverkeer beheren dat naar de applicatie wordt geleid ... Een Service Mesh, zoals Istio, biedt een oplossing voor deze uitdagingen. Istio fungeert als een proxy tussen de verschillende applicaties (services) in het cluster, waarbij elk verzoek door een component van Istio gaat. Hoe werkt Istio Service Mesh? Istio introduceert een sidecar proxy voor elke service in het microservices ecosysteem. Deze sidecar proxy beheert al het inkomende en uitgaande verkeer voor de dienst. Daarnaast voegt Istio componenten toe die het inkomende en uitgaande verkeer van het cluster afhandelen. Istio's control plane maakt het mogelijk om beleidsregels te definiëren voor verkeersbeheer, beveiliging en monitoring, die vervolgens worden toegepast op de toegevoegde componenten. Voor een beter begrip van de functionaliteit van Istio Service Mesh, zie ons blogartikel "Istio Service Mesh installeren: A Comprehensive Step-by-Step Guide" , een gedetailleerde, stapsgewijze uitleg over de installatie en het gebruik van Istio. Waarom Istio Service Mesh? Verkeersbeheer: Istio maakt gedetailleerd verkeersbeheer mogelijk, waardoor ontwikkelaars eenvoudig verkeer tussen verschillende versies van hun services kunnen routeren, verdelen en controleren. Beveiliging: Istio biedt een robuuste beveiligingslaag met functies zoals verkeersversleuteling met behulp van eigen certificaten, Role-Based Access Control (RBAC) en mogelijkheden voor het implementeren van authenticatie- en autorisatiebeleid. Waarneembaarheid: Door middel van ingebouwde instrumentatie biedt Istio diepgaande observeerbaarheid met tools voor monitoring, logging en gedistribueerde tracering. Hierdoor kunnen IT-teams de prestaties van services analyseren en snel problemen opsporen. Vereenvoudigde communicatie: Istio neemt de complexiteit van servicecommunicatie weg van applicatieontwikkelaars, zodat zij zich kunnen richten op het bouwen van applicatiefuncties. Is Istio geschikt voor uw opstelling? Hoewel de voordelen duidelijk zijn, is het essentieel om te overwegen of de extra complexiteit van Istio past bij jouw specifieke opstelling. Ten eerste is er een sidecar container nodig voor elke ingezette service, wat kan leiden tot ongewenste geheugen- en CPU overhead. Daarnaast kan het zijn dat je team niet beschikt over de specialistische kennis die nodig is voor Istio. Als je overweegt om Istio Service Mesh te gaan gebruiken, vraag dan begeleiding aan specialisten met expertise. Vraag onze experts gerust om hulp. Meer informatie over Istio Istio Service Mesh is een technologische game-changer voor IT-professionals die streven naar geavanceerde controle, beveiliging en observeerbaarheid in hun microservices-architectuur. Istio vereenvoudigt en beveiligt de communicatie tussen services, waardoor IT-teams zich kunnen richten op het bouwen van betrouwbare en schaalbare applicaties. Snel antwoord nodig op al uw vragen over Istio Service Mesh? Neem contact op met onze experts
Lees verderWant to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!


