Blog

De evolutie van AKS: van Containers naar Kubernetes naar Azure Kubernetes Service (AKS)

[Azure] Kubernetes is al enige tijd hét platform voor het beheren van containers. Maar waarom is dat en wat zijn nu de voordelen van Kubernetes en managed Azure Kubernetes Service?

Gepubliceerd: 06 juli 2021

De basis: containers

De evolutie van AKS begint met containers. Eigenlijk worden ze al overal gebruikt, ook als je ze in de eerste plaats niet altijd herkent als containers. Zo is een app op je telefoon ook als een container verpakt.

Een container is een betrouwbare manier om applicaties te verpakken en uit te voeren in meerdere omgevingen (laptop, Microsoft Azure, private datacenter of Amazon). Een container is onafhankelijk van het platform waarop deze wordt gestart. Een container bevat de applicatie inclusief alle benodigde runtime en bibliotheken om juist te kunnen functioneren. Of de container nu op systeem A of B draait, de inhoudt blijft hetzelfde en alle afhankelijkheden worden meegeleverd. Voor een schematische weergave zie de onderstaande afbeelding.

Containers zijn efficiënter omdat zij het besturingssysteem en de resources met elkaar delen. Dit in tegenstelling tot VMs waarbij iedere VM een eigen besturingssysteem bevat. Een container is hiermee veel compacter dan bijvoorbeeld een VM. Containers kunnen vaak in seconden gestart worden, terwijl een VM meestal minuten nodig heeft om hetzelfde te doen. Dit scheelt aanzienlijk in de kosten omdat meerdere containers van dezelfde resources gebruik maken.

Bron

Het gebruik van containers biedt nog veel meer voordelen. Wil je hier meer over weten? Lees dan het artikel van Wesley Haakman die hier nog veel dieper op ingaat: “Write once, run anywhere”. Containers, de kortste klap voor ISVs naar een multi-platform, Hybride oplossing.

Microservices en Containers: 2 handen op 1 buik

Microservices en containers gaan buitengewoon goed met elkaar samen. In een Microservice architectuur wordt een applicatie opgesplitst in meerdere kleinere services. Elke service is verantwoordelijk een specifieke taak, niet meer. Microservices worden onafhankelijk van elkaar ontwikkeld, een groot voordeel is dat er voor elke service een unieke ontwikkelomgeving kan worden gekozen. Zo kan service A gebruik maken van .net-core, service B van php en service C van node.js.

Het zou zeer inefficiënt zijn om voor iedere service een aparte VM op te zetten, containers bieden hiervoor een uitstekende oplossing. Iedere service kan worden verpakt in een container en alle containers kunnen gebruikmaken van dezelfde hardware. Immers een container bevat niet alleen de applicatie, maar ook alle benodigde runtime en bibliotheken om te functioneren. Het toepassen van containers bij Microservices geeft je hiermee direct een kostenvoordeel ten opzichte van VMs

Kubernetes dé oplossing voor het beheer van containers

Voor het efficiënt beheren van grotere aantallen containers is Kubernetes dé oplossing. Met Kubernetes worden VM’s of servers (nodes) samengevoegd tot een cluster. Dit cluster kan centraal beheerd worden door een systeembeheerder of vanuit de ontwikkelteams zelf.

De belangrijkste voordelen van Kubernetes zijn:

  • Efficiëntie
    Veel problemen van het beheer van containers worden opgelost doordat Kubernetes containers samenvoegt in ‘Pods’. Aan Pods kun je eigenschappen toekennen zoals storage, networking en scheduling. Kubernetes kijkt vervolgens naar het beschikbare geheugen en processorgebruik van elke node en kiest voor jou de beste verdeling. Hiermee worden de nodes van het Kubernetes cluster optimaal gebruikt wat resulteert in directe kostenbesparing.

  • High-availability door het Desired State principe
    Kubernetes volgt het Desired State principe. Je vertelt Kubernetes wat je wilt hebben, niet hoe Kubernetes dit moet doen. Kubernetes doet continue zijn uiterste best om aan jouw wensen te voldoen. Dus bij een update, onderhoud of een storing zal Kubernetes de pods opnieuw aanmaken of verdelen om aan je gestelde eisen te voldoen. Hiermee zorgt Kubernetes er automatisch voor dat de site of applicatie altijd beschikbaar is.
  • Updaten zonder downtime
    Met rolling updates kun je altijd updaten zonder downtime. Rolling updates is een techniek om pods een-op-een te vervangen door een nieuwere versie van Kubernetes. Hiermee is het in veel gevallen niet meer nodig om update ’s avonds of ’s nachts uit te voeren. Doordat het updaten van de applicaties in Kubernetes geautomatiseerd kan worden kan je ook vaker updaten. Bugs worden sneller opgelost en klanten hebben sneller de features waar ze om vragen.

  • Centraal management
    Kubernetes heeft zijn eigen opslag voor configuratie, wachtwoorden en certificaten. Er is geen lokale configuratie op VM’s of servers nodig. Dit maakt het beheer van een Kubernetes cluster efficiënt, makkelijk en overzichtelijk. Ook is er een enorm aantal tools en plugins beschikbaar voor het beheer van Kubernetes. Je bent niet verplicht om deze tools te gebruiken maar het is fijn om te weten dat Kubernetes eindeloos kan mee groeien met je organisatie. 

 

Manage je Kubernetes met Azure Kubernetes Services

Het handmatig opzetten van een Kubernetes cluster is een serieuze klus en vereist vergaande kennis en ervaring van Linux, Docker en Kubernetes. Ook als het al lukt om een Kubernetes cluster op te zetten betekent dit nog steeds dat dit cluster moet worden onderhouden. Je moet goed plannen hoe je omgaat met storingen, updates en uitbreidingen. Ga je dit allemaal zelf doen dan kost dit veel tijd en is het vrij kostbaar. Dus hoe doe je dit dan wel?

 

Azure Kubernetes Services

Azure Kubernetes Service (AKS) is managed Kubernetes in Azure. Met AKS neemt Microsoft al het complexe beheer van het cluster van je over. Met een paar keer klikken of een paar regels code heb je al een AKS-cluster klaar voor productie gebruik.

Microsoft is een van de grootste organisaties die actief mee ontwikkeld aan Kubernetes. Wat resulteert in een perfecte ondersteuning van Kubernetes in Azure. Binnen twee weken na het uitkomen van een nieuwe versie is de versie beschikbaar in Azure. Het updaten van een cluster, normaal een erg ingewikkelde klus, is met AKS teruggebracht tot een enkele klik.

De redenen waarom je nog meer van AKS gaat houden:

  • Gratis! AKS is gratis, je betaald alleen voor de resources (VM’s, opslag en netwerk) die het cluster verbruikt. Er worden geen kosten berekend voor de AKS PaaS dienst zelf. Het complex beheer van het cluster wordt dus helemaal kosteloos door Microsoft uitgevoerd.

  • Elk Kubernetes cluster heeft een of meerdere master nodes nodig, deze VMs bevatten de configuratie en zijn verantwoordelijk voor het beheer van het cluster. De master nodes zijn bij AKS voor rekening van Microsoft, je betaalt alleen voor de VM’s waar je AKS-cluster uit bestaat.

  • AKS biedt uitstekende integratie met Azure DevOps voor het opzetten van een CD/CI pipelines. Met rolling updates kan Kubernetes stuk voor stuk de containers updaten zonder downtime. Dit is essentieel voor CI/CD pipelines waarbij op elk moment van de dag updates worden doorgezet naar productiesystemen.

  • Een AKS cluster wordt in Azure uitgerold op een Availibility Set. Hiermee zijn de servers van het cluster verdeeld over meerdere fysiek gescheiden hardware racks. Dit geeft jou de garantie dat zelf bij een storing van de onderliggende hardware het cluster nog steeds online blijft. Een AKS cluster is hiermee altijd beschikbaar en daarmee ook jouw applicaties op het cluster.

  • Een AKS-cluster is vrijwel eindeloos horizontaal schaalbaar, het toevoegen of verwijderen van VMs kan zonder downtime of zelfs volledig automatisch. Heb je extra power nodig, met een paar keer klikken worden extra VMs aan het cluster toegevoegd.
  • Als laatste voordeel van Azure Kubernetes Service is de uitgebreide integratie met andere services binnen Azure. Bijvoorbeeld de storage, netwerken, monitoring en beveiliging van Azure zijn naadloos geïntegreerd binnen Kubernetes.

 


Dit artikel is onderdeel van een reeks 

Lees in het vervolg artikel wat je nodig hebt om een Kubernetes cluster op te zetten en hoe je dit stap voor stap in de praktijk brengt.


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 en meld je aan!