Van klantvraag naar open source
Waarom we de ontbrekende schakel voor Talos op OpenNebula bouwden
“Kunnen we op OpenNebula ook Kubernetes draaien op basis van Talos Linux?”
Die vraag kregen we de afgelopen maanden steeds vaker van organisaties die overstapten op open-source virtualisatie, vaak vanuit zorgen over licentiekosten of geopolitieke afhankelijkheid. Het korte antwoord was, ‘ja’. We gebruiken de combinatie zelf ook voor onze eigen managed services. OpenNebula kan de virtuele machines die Talos nodig heeft dus prima draaien. Maar het feitelijk kunnen draaien van een systeem is iets anders dan het eenvoudig uitrollen en beheren van een cluster als eindgebruiker. Daarom hebben we het ontbrekende stuk gebouwd. We brengen https://github.com/TrueFullstaq/talos-opennebula uit, een open-source integratie om Talos Kubernetes-clusters uit te rollen als native OpenNebula OneFlow-services.uit, een open-source integratie om Talos Kubernetes-clusters uit te rollen als native OpenNebula OneFlow-services.
Waarom Talos op OpenNebula?
Als je wilt beginnen met Kubernetes op OpenNebula, is er een voor de hand liggende optie: OneKS. Dit is OpenNebula’s eigen geïntegreerde Kubernetes-oplossing, gebaseerd op ClusterAPI, CAPONE en RKE2. Als je Kubernetes wilt gebruiken als een geïntegreerde OpenNebula-dienst is dat de logische plek om te beginnen.
Onze situatie was anders. We spraken organisaties die al voor Talos hadden gekozen en die manier van werken wilden behouden op OpenNebula. Talos is een andere aanpak van het besturingssysteem onder Kubernetes. Het is minimalistisch, immutabel, heeft geen SSH of interactieve shell en wordt aangestuurd via een API. Voor organisaties die voor Talos kiezen zijn dat belangrijke eigenschappen. Het voorkomen van veranderingen in de configuratie en het voorspelbaar houden van nodes is onderdeel van de architectuur.
Deze minimalistische aanpak wilden we behouden in de uitrol van Talos op OpenNebula. In plaats van er een nieuwe toolset omheen te bouwen, wilden we kijken hoever we kwamen met de eigen bouwstenen van OpenNebula. Dat bleek ver te zijn.
Strategische onderbouwing van deze keuze
- Echte regie over de infrastructuur: door te bouwen op open standaarden (zoals OpenNebula en Talos) ben je niet overgeleverd aan abrupte licentiewijzigingen of verplichte prijsverhogingen van grote leveranciers.
- Minder complexiteit, minder risico: talos is immutabel (onveranderbaar) en kent geen handmatige inlog (geen SSH). Er zijn geen handmatige aanpassingen op de servers mogelijk. Als er een update nodig is, wordt een node automatisch vervangen. Dat verlaagt de kans op menselijke fouten en storingen drastisch.
- Keuzevrijheid voor de toekomst: een modulaire, open-source basis zorgt ervoor dat je IT-landschap wendbaar blijft. Je zit niet vast aan één gesloten ecosysteem, maar behoudt de vrijheid om mee te bewegen met wat de organisatie nodig heeft.
Geen extra lagen
De architectuur is bewust klein gehouden. OneFlow beheert de levenscyclus van de multi-VM service. OneGate regelt de detectie en het uitwisselen van statusgegevens. Een gateway ontsluit de Kubernetes API en een lichte orchestrator genereert de Talos-configuratie voor de eerste cluster-bootstrap.
De control-plane en worker nodes van Talos blijven gewone Talos-nodes. Er zit geen OpenNebula-agent in en er is geen configuratie via SSH. We hebben er ook geen externe automatiseringstack omheen gehangen. De basis heeft geen Terraform, Ansible, Vault, GitOps-tooling of externe DNS-automatisering nodig.
Na installatie verschijnt het resultaat als een gewone service-template in OpenNebula. Een operator kan een Talos-cluster aanmaken vanuit de Sunstone GUI op dezelfde manier als elke andere service. In onze lab-omgeving kan een cluster in maximaal vier minuten worden aangemaakt of verwijderd. Dat is een getal uit een testomgeving, maar het maakt de implementatie handig voor ontwikkeling, testen en evaluatie.
Gebouwd vanuit een concrete vraag
De vraag om op eenvoudige wijze Talos clusters te beheren vanuit OpenNebula, kwam van organisaties die mogelijkheden verkenden rond soevereine infrastructuur, OpenNebula en immutabele Kubernetes. Dit project is bedoeld om het OpenNebula-ecosysteem aan te vullen, niet om bestaande functionaliteit van OneKS te herhalen. Het verschil zit in de architectuur. Je kiest OneKS als je Kubernetes geleverd en beheerd wilt krijgen als een geïntegreerde OpenNebula-dienst. Je kijkt naar talos-opennebula als Talos zelf een bewuste keuze is in je platformarchitectuur.
We hebben de implementatie bewust opgebouwd in een omgeving die losstaat van onze eigen productieomgeving. In onze beheeromgevingen beschikken we over allerlei tooling en automatisering waar je in een generieke OpenNebula-omgeving niet zomaar van uit kunt gaan. Daarom hebben we talos-opennebula opgebouwd op testomgevingen en onze TrueFullstaq Homelabs. Daardoor is de architectuur begrijpelijk en zonder verborgen afhankelijkheden, gebaseerd op best practices en de standaard bouwstenen van OpenNebula zelf. We hebben de implementatie daarna gedeeld met OpenNebula Engineering en hun feedback verwerkt voordat we de code publiceerden.
Een basis om mee te werken
We geven het project vrij als proof of concept en referentie-implementatie. De huidige versie ondersteunt één gateway voor de Kubernetes API. Andere modellen zijn uitgedacht in het ontwerp, maar nog niet volledig aangesloten. Er is dus ruimte om het project verder uit te breiden.
Dat is een bewuste keuze. We brengen liever een compacte implementatie uit waarvan de architectuur begrijpelijk is, dan dat we onderdelen verstoppen achter een zware laag.
Voor OpenNebula-beheerders biedt het een manier om te experimenteren met Talos. Voor organisaties die op Talos standaardiseren geeft het een startpunt om die architectuur naar OpenNebula te brengen. En voor ons geeft het een basis om door te ontwikkelen met de klanten die erom vroegen.
De complete implementatie, documentatie, architectuurbeslissingen en instructies staan in de TrueFullstaq/talos-opennebula repository op GitHub onder een Apache 2.0-licentie. Je kunt de code gebruiken, testen en aanpassen. Als je Talos op OpenNebula wilt draaien in een productie-omgeving, horen we graag wat je ervaringen zijn.