Kubernetes bestaat deze maand 10 jaar. Deze open-source technologie automatiseert de inzet, het beheer en het schalen van gecontaineriseerde softwaretoepassingen en -services. Het jubileum is een goed moment om te vragen hoe we hier zijn gekomen en hoe deze technologie populair werd. Daarnaast kijken we naar de impact op platform engineering en de overstap naar gevirtualiseerde, geabstraheerde en serverless technologieën.
De meeste lezers zullen Kubernetes al goed kennen, dus we introduceren het concept vooraf in het kort. De technologie ontleent zijn naam aan het Oudgrieks voor ‘piloot’ of ‘stuurman’ (zoals in de zeevaart) en werd gekozen om de breedte en diepte van de cloud te vergelijken met de zeeën en oceanen van deze planeet.
Google-software engineers Craig McLuckie, Joe Beda en Brendan Burns stelden in 2014 het concept van een open-source container management-systeem voor aan hun werkgevers, dat teruggaat tot Google’s Borg clusterbeheersysteem in 2003 (dat later Omega werd in 2013). Het project ging van start en werd onmiddellijk open-source gemaakt om een maximale betrokkenheid van de gemeenschap te bewerkstelligen. Vandaag de dag is Kubernetes volgens een rapport van de CNCF het op één na grootste open-source project ter wereld. Linux is nog altijd het grootste project.
Wat vindt de techindustrie van de ontwikkeling van Kubernetes?
“Tien jaar na dato is Kubernetes uitgegroeid van een krachtig idee tot een onmisbare tool voor moderne applicatieontwikkeling. Het is in eerste instantie ontworpen om gecontaineriseerde applicaties op schaal te beheren, door een robuust framework te bieden voor deployment, scaling en operations. Vandaag de dag is het een hoeksteen van cloud-native computing. Het ecosysteem ervan blijft groeien en innoveren,” zegt Matt Barker, VP & global head for workload identity architecture bij Venafi.
Zoals we weten, is Kubernetes nu de de facto standaard in de industrie om ervoor te zorgen dat container workloads volgens specificatie draaien en effectief kunnen schalen. Volgens 84 procent van IT- en security-leiders is het hard op weg om het primaire platform te worden voor het ontwikkelen van álle applicaties.
Lees ook: Eén op de twee bedrijven brengt VM-workloads naar Kubernetes
Schalen en beveiliging baren zorgen
“Nu Kubernetes volwassener is geworden, zien we dat de community begint te innoveren rond de dringende uitdagingen van ontwikkelaarservaring, schaalbaarheid en security,” merkt Barker op. “De complexiteit van cloud-native omgevingen blijft toenemen. We zien tegelijkertijd steeds meer blinde vlekken en uitdagingen voor ontwikkelaars. De groei in multi-cloud en multi-cluster verhoogt niet alleen de operationele overhead, maar vergroot ook het aanvalsoppervlak. Deze explosie van configuraties maakt het voor ontwikkelaars moeilijker om te weten of workloads en services met elkaar mogen communiceren. Ondertussen zijn traditionele securityprotocollen niet afgestemd op het beschermen van omgevingen die niet langer binnen een on-prem perimeter opereren.”
Barker kijkt uit naar de verdere ontwikkeling van service meshes en een hernieuwde focus op identiteiten om workloads te beveiligen. SPIFFE is bijvoorbeeld een framework ontwikkeld door de hierboven genoemde medeoprichter van Kubernetes Joe Beda. Rond de tijd dat hij Kubernetes uitbracht, voorzag hij ook de noodzaak om workloads in dynamische multi-cloudomgevingen snel te authenticeren. Daarom creëerde hij SPIFFE.
“Ik sprak onlangs met Joe. Hij gelooft dat we een punt hebben bereikt waarop mensen cloud nu ‘begrijpen’. Naarmate men er meer middelen voor inzet, begint men zich de uitdagingen te realiseren van het hebben van gedeelde services over meerdere omgevingen. In zijn woorden: Kubernetes is nu ‘een eigen leven gaan leiden’. De groei in Kubernetes zal deze pijn alleen maar doen toenemen. Het beveiligen van workloads in deze steeds dynamischere omgevingen betekent dat workload identity in de toekomst een enorme focus zal krijgen,” zei hij.
Stem van Kubernetes-experts
Pure Storage werkte samen met Dimensional Research om een rapport uit te brengen tijdens het Kubernetes-jubileum. De twee partijen analyseerden daarbij de adoptie van cloud-native platformen. Het ‘Voice of Kubernetes Experts Report 2024’ onderzoekt de prioriteiten en trends in het cloud-native landschap. Denk hierbij aan alles van moderne virtualisatie, cloud-native databases en AI/ML adoptie met behulp van Kubernetes tot de opkomst van platform engineering.
In de komende vijf jaar bevestigt 80 procent van de respondenten dat alle of de meeste van hun nieuwe applicaties zullen worden gebouwd in cloud-native platforms. Voor hun cloud-native technologie geven ze de voorkeur aan de flexibiliteit van implementatie in hybride cloudomgevingen. Hierbij bevestigt 86 procent dat ze cloud-native technologie in zowel publieke als private clouds draaien. Meer dan de helft (58 procent) van de organisaties is van plan om een deel van hun VM-workloads te migreren naar Kubernetes. Hierbij is 65 procent van plan om alle VM-workloads binnen de komende twee jaar te migreren. Bijna alle respondenten (98 procent) draaien data-intensieve workloads op cloud-native platforms, waarbij kritieke apps zoals databases (72 procent), analytics (67 procent) en AI/ML workloads (54 procent) worden gebouwd op Kubernetes.
“Ervaren platformleiders draaien mission-critical applicaties zoals databases, analytics en AI/ML op Kubernetes op grote schaal in hybride en multi-cloud omgevingen. Het is geen verrassing dat deze platformleiders ook de weg vrijmaken om VM’s door Kubernetes te laten beheren zonder afbreuk te doen aan de bedrijfsvereisten. Zo blijven ze ondersteund door oplossingen zoals Red Hat OpenShift. De nieuwste bevindingen onderstrepen de urgentie van het vergroten van de rol van platform engineering om infrastructuur te beheren in samenhang met de applicatie-stack voor innovatie,” aldus Murli Thirumale, VP & GM voor Portworx by Pure Storage. Thirumale suggereert (niet verrassend) dat Portworx ook een solide rol speelt in K8S-beheer naast OpenShift.
Tip: Kubernetes-specialist True sluit zich aan bij Dutch Cloud Community
Lessen van Linux
Yechezkel Rabinovich, CTO en medeoprichter van Groundcover, denkt dat Kubernetes heeft bewezen een breed scala aan taken aan te kunnen. De complexiteit vereist echter een aanzienlijke setup en constante aanpassingen.
“Net zoals Linux zich heeft ontwikkeld tot een robuuste OS, verwacht ik dat Kubernetes zich zal ontwikkelen tot een gebruiksvriendelijkere abstractielaag. In de komende jaren zullen we meer abstracties bovenop Kubernetes zien die het gebruik zullen vereenvoudigen en frictie zullen verminderen. Hierdoor wordt het toegankelijker en efficiënter voor iedereen,” zei Rabinovich.
Toen Kubernetes begon, was het niet zeker dat het hét platform zou worden voor al het containerbeheer. Appdevelopers pikten het snel op, wat leidde tot meer ontwikkeling rond de ondersteuning van andere componenten van de applicatie-stack. Toen die componenten werden toegevoegd, werd het eenvoudiger om andere workloads zoals databases te ondersteunen. Dit is de mening van Patrick McFadin, vicepresident voor relaties met ontwikkelaars bij DataStax.
“De twee grootste katalysatoren die Kubernetes verstevigden voor de hele stack waren de lancering van Kubernetes Operators en het verbeterde opslagbeheer”, zegt McFadin. “Beide waren belangrijk, maar operators maakten het makkelijker om ondersteuning voor andere IT-resources en -workloads toe te voegen. Misschien wel té gemakkelijk. Toen Operators voor het eerst werden gelanceerd, leek het alsof iedereen in een weekend zijn eigen Operators zou bouwen. Er was zo’n overvloed aan. Het was makkelijk om aan de minimale operatorstandaarden te voldoen en snel in elkaar te zetten wat je nodig had. Dat maakte het een stuk lastiger om het overzicht te bewaren, omdat iedereen zijn eigen manier had om dingen te doen. Toch begon de community samen te komen en zich te richten op samenwerking in plaats van te proberen alles zelf te doen. Dat is waarschijnlijk een grote reden waarom Kubernetes in de eerste plaats heeft gewonnen.”
Nu Kubernetes zijn tiende verjaardag viert, is het volgens McFadin duidelijk dat het zijn tienerjaren ingaat. Hij stelt voor dat de technologie misschien nog wat ruwe kantjes heeft en uitdagingen moet overwinnen, maar dat de naderende volwassenheid onmiskenbaar is.
Een tegenovergestelde mening
Kubernetes is gebouwd om softwarecontainers te beheren en toepassingen ‘portable’ te maken in cloudomgevingen. Het was ontworpen om microservices-appcomponenten te draaien in clusters die konden worden opgespind, gestart wanneer nodig en weer uitgeschakeld wanneer ze niet langer nodig waren. Dit waren stateless systemen die op aanvraag draaiden.
“Dit is het tegenovergestelde van wat je nodig hebt voor data workloads, waar persistentie en opslag in de tijd nodig zijn. Kubernetes is niet begonnen met het ondersteunen van data workloads zoals databases, omdat dat stateful workloads zijn die jaren kunnen bestaan,” zegt Sergey Pronin, group products manager, Percona.
Pronin herinnert ons eraan dat ontwikkelaars Kubernetes en containers gelijk interessant vonden. Maar de community moest nog veel werk verrichten om databases en opslag naast die applicatie-workloads te draaien. Hij merkt op dat dit werk nodig was als we applicaties naar de cloud wilden verplaatsen, dus de release van Kubernetes Operators was echt belangrijk voor de adoptie van containers buiten die eerste lichting stateless applicaties. Daarnaast zorgde de release van Stateful Sets ervoor dat containers stateful workloads konden draaien die maanden, zelfs jaren, konden bestaan als dat nodig was.
“In het begin was er veel weerstand tegen het draaien van databases op Kubernetes,” legt Pronin uit. “De eerste paar jaar was het alleen weggelegd voor degenen die zich op het snijvlak van cloud native bevonden. Maar de ontwikkeling van de community en meer werk aan operators voor databases maakten het makkelijker om database-instances op Kubernetes te draaien, en dat verbreedde de community. Nu draait de meerderheid van degenen die Kubernetes gebruiken voor hun applicaties ook hun database-instances. Het heeft ons tien jaar gekost om zover te komen. Nog steeds zijn er problemen op te lossen, zoals rond het automatisch schalen van stateful workloads. Kubernetes is echter een blijvertje als het gaat om het hosten van databases en het opslaan van gegevens.”
20 jaar Kubernetes?
Hebben we het over tien jaar weer over twintig jaar Kubernetes? Daar lijkt het wel op. Of we het dan nog hebben over de huidige uitdagingen omtrent security, de ervaring van ontwikkelaars, schaalbaarheid en het uitroeien van broze systemen zullen zijn, moet nog blijken. Misschien is de meest veelzeggende graadmeter wel de mate waarin cloud computing zelf een ‘utility-achtig’ onderdeel van onze IT-stacks is geworden. Het wordt vandaag de dag beschouwd als beheersbaar, net als elektriciteit of de watervoorziening. Toch zijn er nog ruwe golven te navigeren om de huidige, hardnekkige problemen aan te pakken.
Beluister ook onze Techzine Talks-aflevering over KubeCon van dit jaar: