Wat is Kubernetes en waarom is het zo interessant?

Kubernetes orchestration platform for containersKubernetes, voor de vrienden kortweg ‘k8s’, is een systeem voor het beheren van grote groepen containers en containerized applicaties. Met deze techniek kun je de werking van containers organiseren, dat heet ‘Container Orchestration’. Kubernetes werd oorspronkelijk ontwikkeld door Google, maar kreeg een eigen leven binnen de open source community. Dankzij een open standaard als Docker werden containers al erg populair. Met Kubernetes kun je veel containers, héél veel containers, beheren zonder het overzicht te verliezen.

Schaaluitbreiding doen we vandaag horizontaal: méér servers, in plaats van grotere, zwaardere. Microservices, een belangrijke trend in applicatie-ontwikkeling, maakt dat we de grote software-blokken opknippen in vele kleintjes. Het resultaat is dat je véél meer te beheren krijgt: tientallen, honderden of zelfs duizenden nodes. In een typische cloud-aanpak zijn dat niet langer ‘servers’ maar ‘containers’. Met Kubernetes is er gelukkig ook een nieuwe manier om dit alles te beheren.

Bekijk onze managed Kubernetes oplossingen

 

Het orkest en de partituur – Hoe werkt Kubernetes?

Kubernetes orchestratie en automatisatieKubernetes maakt orkestratie mogelijk, dit betekent automatiseren van het management van de containers. Eigen aan containers is dat ze een autonoom stuk code bevatten, niet zelden onveranderlijk. Ze kunnen binnen enkele seconden worden opgestart, manueel of automatisch. Kubernetes start de containers op, zorgt voor o.a. load balancing, failover, routering van netwerkverkeer bij grote drukte, makkelijke (automatische) opschaling, maar ook voor downscalen van resources als het rustig is. Loopt een container vast, dan zorgt Kubernetes voor een nieuwe.

Net dat is de sterkte van Kubernetes – je kunt containers geheel automatisch, volgens vooraf vastgelegde criteria laten starten en stoppen. Voorbeelden van zulke criteria kunnen de volgende zijn:

  • Een minimum aantal instances die voor elke container actief moeten zijn
  • De responstijden die voor elk van deze instances onder je afgesproken drempelwaarden moeten blijven
  • Wanneer je monitoring een probleem detecteert, kun je onmiddellijk een extra instance bijplaatsen
  • En je kunt het inkomende verkeer automatisch wegleiden van het vermoede probleem en de vastgelopen instance herstarten.

Het is maar een eenvoudig voorbeeld van orkestratieregels die je met Kubernetes kunt instellen. Vooruitzien is de boodschap. Hoewel je nooit alle mogelijke struikelblokken kunt voorzien, ligt er voor de meeste situaties vooraf al een draaiboek klaar. Dat is de basis voor verregaande automatisering. Je lost de problemen eigenlijk op, nog vóór ze zich stellen.

Het vraagt wel om een totaal andere mindset. Waar je vroeger als systeembeheerder een virtuoos was op je favoriete instrument, ben je nu de dirigent die de harmonie van het geheel bewaakt. Je partituur zijn de basisregels waarop het geheel is gebouwd.

 

Andere spelregels – Wat maakt Kubernetes zo speciaal?

Kubernetes beheer master-serverHet grote voordeel van Kubernetes is dat je de menselijke factor als zwakste schakel uitschakelt. Containers uitrollen binnen een infrastructuurcluster, en extra nodes aan- en afschakelen, kan in principe manueel. Maar dan kun je niet zo kort op de bal spelen als wanneer je deze processen volautomatisch laat lopen.

De essentie van clustering met containers is net dat je de impact van een eventuele systeemfout minimaliseert door alle onderdelen te ontdubbelen en elastisch op te schalen. Met Kubernetes gebeurt dat onmiddellijk, nog voordat je als menselijke beheerder de tijd had om tussen te komen.

Orkestratie met Kubernetes zorgt ervoor dat je ook de beslissing om extra nodes te voorzien, en om verkeer weg te leiden van een eventueel probleem, volledig automatiseert. Een master-server bewaakt de cluster-infrastructuur – die start en stopt extra nodes op basis van de afgesproken spelregels. De nodes zijn virtueel afgeschermde stukjes infrastructuur waarop elke container draait, inclusief de netwerkparameters voor toegang en load balancing. Containers die samenwerken en sterk van elkaar afhankelijk zijn, kun je ook bundelen in pods.

Het beheer van je infrastructuur en toepassingsonderdelen gebeurt op die manier véél minder hands-on. Je beheert de master-server en niet langer elke node apart. Voor het neerschrijven van de spelregels is kennis van formaten als JSON (JavaScript Object Notation), REST (Representational State Transfer) of YAML geen luxe. We zijn conceptueel erg ver van ‘systeembeheer’ in de klassieke zin.

 

Flexibel en foutbestendig – Wat zijn de voordelen aan werken met Kubernetes?

  • Met Kubernetes kies je voor applicatie-ontwikkeling op basis van API’s (Application Programming Interfaces). In het cloud-tijdperk is het gemeengoed om je applicatie op te knippen in functionele onderdelen, die zelfs elders in de cloud kunnen worden gehost. Je kiest met een DevOps-aanpak voor continuous integration & delivery, waarbij de aandacht vooral kan gaan naar nieuwe functionele rijkdom en minder naar infrastructuurkwesties. Je legt kortom meer focus op je business.
  • De niet-functionele noden verdwijnen niet van de kaart, integendeel. Veiligheid, performance, hoge beschikbaarheid, flexibiliteit en elastische schaaluitbreiding zijn stuk voor stuk essentieel. Net op die noden biedt Kubernetes een antwoord, door automatisering. Op voorwaarde dat je onderliggende infrastructuur-cluster nog voldoende fysieke resources heeft, gaat Kubernetes onmiddellijk bijschalen waar nodig.
  • Werken met microservices betekent ook dat je erg granulair kunt gaan bijschalen, exact waar dat het meest nodig is. Je toepassing reageert maar zo snel als de traagste schakel in de keten. Doordat je toepassing niet langer één geheel is, maar een compositie van deel-services, kun je beter identificeren waar het schoentje wringt, en precies daar een maatje groter gaan. Zo is Kubernetes ook een prima hulpmiddel voor performance-optimalisatie.
  • Doordat Kubernetes zelf de werking van elke component verifieert, en automatisch corrigeert, wordt de impact van problemen veel kleiner. Het is een erg betaalbare manier om hoge beschikbaarheidsniveaus te garanderen.
  • Beheertaken automatiseren scheelt developers en DevOps engineers ontzettend veel tijd. Doordat Kubernetes je heel veel configuratiewerk uit handen neemt, kun je ook sneller ontwikkelen: Sneller nieuwe applicaties schaalbaar uitrollen, maar ook sneller nieuwe features uitrollen naar bestaande. Met de software zijn containers te groeperen en in theorie eenvoudig(er) te beheren.
  • Kubernetes is een typisch voorbeeld van een hoogwaardig open source-project, dat populair is dankzij zijn goede ondersteuning, en goede ondersteuning geniet dankzij zijn populariteit. Open source betekent ook dat er erg veel mogelijkheden zijn voor flexibiliteit en uitbreiding.

 

Zijn er ook nadelen aan werken met Kubernetes?

  • De keerzijde van de medaille is dat je met zoveel mogelijkheden ook overweg moet kunnen. Zonder de juiste technische kennis, kan de rijkdom aan mogelijkheden al gauw een doolhof worden. Sommige technische keuzes hebben ook een impact op de veiligheid van je infrastructuur. Voor belangrijke websites of toepassingen blijft dat een aandachtspunt waarop je geen toegevingen mag doen.

 

Combell & Kubernetes

Lijkt Kubernetes interessant, maar beschik je zelf niet over de technische bagage om dit op te zetten en te beheren? Geen nood. Combell heeft een aanbod Managed Kubernetes, om je op weg te helpen of zelfs volledig te ontzorgen. Zo beschik je toch over de nodige garanties op het vlak van veiligheid, betrouwbaarheid en ondersteuning.

Snel en flexibel opschalen, werkt natuurlijk ook enkel zolang de fysieke infrastructuur dat toelaat. Met containers maak je erg efficiënt gebruik van de beschikbare resources, met minimale overhead. Toch moet de fysieke infrastructuur voorzien zijn op de pieken, of snel uitbreidbaar zijn. Combell voorziet toegankelijke formules om snel te kunnen groeien, of te evolueren in functie van je werkelijke noden.

 

Overtuigd? Of heb je nog vragen?

Neem contact op met onze specialisten