Waarom OVH Managed Kubernetes?

Kubernetes gebruiken is een geweldige ervaring, maar het in productie draaien is bepaald niet zo simpel. En het bouwen van een beheerd Kubernetes platform is nog erger…

In november 2018 hebben we de bèta versie van onze Managed Kubernetes service. gereleased. Het was de eindbestemming van een reis die ons van Kubernetes gebruikers meenam naar het bouwen van een volledig beheerde Kubernetes service, een gecertificeerd Kubernetes platform worden en veel zaken leren over het bouwen, draaien en temmen van een opgeschaalde Kubernetes...

Nu de bèta draait, en de laatste problemen opgelost worden voor de uiteindelijke release, nemen we even wat tijd om een paar lessen die we geleerd hebben, de technische keuzes die we gemaakt hebben en de tooling die we in het proces gebouwd hebben te delen.

In de post van vandaag zullen we onze Managed Kubernetes introduceren en uitleggen waarom we het gebouwd hebben. In de volgende posts zullen we preciezer kijken naar enkele aspecten van de architectuur, zoals de ETCD opschalen of hoe we Kubernetes masters voor klanten opstarten binnen de werk-nodes van onze master Kubernetes...

De Kubernetes reis 

De eerste keer dat u met Minikube speelt, is vaak fenomenaal. Geen zorgen meer over de instances managen, niet meer hoeven te monitoren of de containers draaien, u stopt een instance en Kubernetes maakt de containers opnieuw aan in een andere instance... Het lijkt wel tovenarij!

Vervolgens zegt u, als een nieuwe volgeling, tegen uzelf dat u moet proberen een echte cluster te bouwen en wat grotere apps erop moet laten draaien. U maakt een paar VM, u leert "kubeadm" te gebruiken en enige tijd later heeft u een verse Kubernetes cluster uitgebroed om uw apps op uit te rollen. De tovenarij is er nog steeds, maar u begint te voelen dat — net als in de meeste sprookjes — tovenarij ook een prijs met zich meebrengt...

Kubernetes in productie brengen?

En als u probeert uw eerste Kubernetes cluster on-site te deployen, op een hypervisor of een bare-metal platform, dan ontdekt u dat de prijs wel eens erg hoog zou kunnen zijn... 

De Kubernetes cluster deployen is pas het begin, om het prod ready,te kunnen noemen, moet u ook zorgen dat 

  • Het installatieproces is automatiseerbaar en herhaalbaar
  • Het upgrade/rollback proces is veilig 
  • Een recovery procedure bestaat, gedocumenteerd en is getest
  • Prestaties zijn voorspelbaar en consistent, en zeker als persistente volumes gebruikt worden
  • De cluster is operabel, met voldoende traces, metrics en logs om fouten en problemen te detecteren en te debuggen
  • De service is beveiligd en uiterst beschikbaar

Ons antwoord op deze operationele complexiteit

Nou, als u dacht dat het uitrollen van uw nieuwe Kubernetes cluster u dit heleNoOpszaakje zou opleveren, dan lijkt het erop dat u het mis had. Om de metafoor over tovenarij te blijven gebruiken: tovenarij leren beheersen duurt lang en is niet zonder risico's..

Dus, net als bij vele andere krachtige technologieën, brengt de schijnbare eenvoud en veelzijdigheid van Kubernetes aan de Dev kant een hoge complexiteit aan de Ops kant met zich mee. Geen wonder dat de meeste gebruikers naar het managed Kubernetes front kijken als ze moeten upgraden van proof-of-concept naar productie.

Bij OVH wilden we, als een user-focused bedrijf, die vraag beantwoorden door onze managed Kubernetes oplossing te creëren, volledig gebaseerd op open source, zonder vendor-locking en volledig compatibel met elke pure Kubernetes oplossing. Ons doel was om onze gebruikers een volledig beheerde turnkey Kubernetes cluster te geven, klaar voor gebruik, zonder het gedoe van installatie of operations.

Op de schouders van reuzen…

Dus we wilden een managed Kubernetes oplossing bouwen, maar hoe doe je dat? De eerste stap was simpel: we moesten er zeker van zijn dat de onderliggende infrastructuur rotsvast was, dus we besloten om deze te baseren op onze eigen, op OpenStack gebaseerde, Public Cloud offer.

Certified Kubernetes

Door ons platform te bouwen bovenop een uitgerijpt, uiterst beschikbaar en op standaarden gebaseerd product als OVH Public Cloud, konden we onze inspanningen concentreren op het echte probleem: het maken van een highly scalable, gemakkelijk te gebruiken, CNCF certified, managed Kubernetes service.

En verder?

n de volgende posts van deze serie duiken we wat dieper in de architectuur van de OVH Managed Kubernetes service, waarbij we een paar van onze technologische keuzes toelichten door uit te leggen waarom we ze gemaakt hebben en hoe we het werkend kregen.

Kubinception:Kubernetes draaien bovenop Kubernetes
Kubinception: running Kubernetes over Kubernetes

We zullen beginnen met een van onze moedigste beslissingen: Kubernetes bovenop Kubernetes draaien, of zoals we het graag noemen, de Kubinception