Perché creare OVH Managed Kubernetes?

Utilizzare Kubernetes è un’esperienza fantastica, gestirlo in produzione è decisamente meno semplice, costruire una piattaforma Kubernetes gestita è ancora più complicato...

La versione beta del nostro Managed Kubernetes Service è stata rilasciata nel novembre 2018. È stata la tappa finale di un viaggio iniziato come semplici utenti, durante il quale abbiamo costruito un servizio totalmente gestito, siamo diventati una piattaforma Kubernetes certificata e abbiamo imparato molto sulla costruzione, gestione e utilizzo di questo servizio su larga scala.

Ora che la versione beta è pronta e gli ultimi problemi sono stati risolti in vista del release finale, ci concediamo un po’ di tempo per condividere quanto abbiamo appreso, le decisioni tecnologiche e gli strumenti costruiti durante il processo.

In questo articolo presenteremo il nostro Managed Kubernetes e spiegheremo perché lo abbiamo creato. Più avanti approfondiremo alcuni aspetti legati all’architettura, ad esempio come sfruttare la scalabilità del database etcd o avviare i master Kubernetes dei clienti all’interno dei nodi di lavoro del nostro master Kubernetes.

Il viaggio di Kubernetes 

La prima volta che si utilizza Minikube è spesso sorprendente: non è più necessario pensare a gestire le istanze o monitorare il corretto funzionamento dei container; se spegni un’istanza, Kubernetes ricrea i container in un’altra... è pura magia!

Finché, come neofita, provi a costruire un vero cluster per implementarvi applicazioni più grandi. Crei quindi alcune macchine virtuali, impari a utilizzare "kubeadm" e, poco dopo, ti accorgi di aver generato il nuovo cluster Kubernetes su cui implementare le tue applicazioni. L'incanto è sempre lì ma inizi a percepire che, come in tutte le favole, la magia ha un prezzo...

Messa in produzione Kubernetes

Quando provi a mettere in produzione il tuo primo cluster Kubernetes on-premise, su un hypervisor o una piattaforma bare-metal, scopri che il prezzo di questa magia è abbastanza alto...

L’implementazione del cluster Kubernetes è solo l’inizio. Per poterlo considerare production ready, è necessario verificare anche che:  

  • il processo di installazione sia automatizzabile e riproducibile
  • il processo di upgrade/rollback sia sicuro 
  • esista una procedura di ripristino documentata e testata
  • le performance siano prevedibili e coerenti, soprattutto quando utilizzi volumi persistenti
  • il cluster sia fruibile, con tracce, metriche e log sufficienti a rilevare e correggere eventuali bug e problemi
  • il servizio sia sicuro e high-available

La risposta di OVH a questa complessità operativa

Se pensavi che implementare il tuo nuovo cluster Kubernetes ti avrebbe infuso tutta la conoscenza NoOps, sembra proprio che ti sia sbagliato. Imparare a padroneggiare la magia richiede molto tempo ed è rischioso...

Perciò, proprio come in molte altre tecnologie potenti, l’apparente semplicità e versatilità del lato Dev di Kubernetes si accompagna all’alta complessità della parte Ops. Non c’è da stupirsi che la maggior parte degli utenti guardino il front gestito di Kubernetes prima di passare dal proof-of-concept alla produzione.

OVH, in quanto azienda orientata all’utente, ha voluto rispondere a questa domanda creando la propria soluzione Kubernetes gestita interamente open-source, senza pratiche di vendor lock-in e totalmente compatibile con qualsiasi soluzione Kubernetes pura. Il nostro obiettivo era fornire ai nostri utenti un cluster Kubernetes gestito chiavi in mano, pronto all’uso, senza pensieri relativamente a installazione e gestione.

Sulle spalle dei giganti...

Eravamo sicuri di voler costruire una soluzione Kubernetes gestita, ma in che modo? Il primo step era semplice: dovevamo essere sicuri che l’infrastruttura sottostante fosse solida come una roccia. Abbiamo quindi deciso di crearla sul Public Cloud OVH, basato sull’architettura OpenStack.

Certified Kubernetes

Costruire la nostra piattaforma su un prodotto maturo, high available e basato su standard come il Public Cloud OVH, ci ha permesso di concentrare i nostri sforzi sul nostro reale problema: creare un servizio Kubernetes gestito, scalabile, semplice da utilizzare e certificato dalla CNFC (Cloud Native Computing Foundation).

E adesso?

Nei prossimi articoli ci addentreremo nell’architettura del servizio OVH Managed Kubernetes per scoprire nel dettaglio alcune delle nostre scelte tecnologiche, spiegare perché le abbiamo fatte e come abbiamo reso il servizio operativo.

Kubinception: eseguire Kubernetes su Kubernetes
Kubinception: eseguire Kubernetes su Kubernetes

 

Cominceremo da una delle nostre decisioni più coraggiose: eseguire Kubernetes su Kubernetes o, come ci piace chiamarla, la Kubinception