Kubernetes as a Service con Rancher

Rancher as a Service con CloudFire
Contenuti
Condividi

In un nostro precedente articolo abbiamo esplorato come Kubernetes e I container svolgano un ruolo cruciale nel mondo Cloud Native.

L’adozione di queste tecnologie, infatti, vede costantemente nuovi protagonisti, prodotti e approcci.  In questa evoluzione, le differenze tra Container e VM hanno delineato una strada specifica ed ha comportato specifiche tecnologie e soluzioni.

In CloudFire, come in altre realtà, abbiamo studiato e testato diversi approcci. In questo articolo vi spieghiamo il nostro percorso e le soluzioni adottate fino ad oggi.

Docker: il pioniere della containerizzazione

Ad ogni innovazione tecnologica, e soprattutto rivoluzionaria come i container, nascono nuove sfide da affrontare.

Inizialmente, la containerizzazione delle applicazioni era riservata a un pubblico di nicchia con elevate competenze tecniche.

Docker nasce proprio per rivoluzionare questa situazione. Docker rende disponibile, infatti, un software open-source che offre una soluzione semplice ed efficiente per eseguire, implementare e distribuire container. Questo strumento, infatti, ha ridotto significativamente le barriere tecniche, rendendo la containerizzazione accessibile a un pubblico più ampio.

Molte aziende, inclusa CloudFire, hanno adottato Docker su larga scala, ospitando i container in vari ambienti come VM o server fisici.

Tuttavia, questa proliferazione di container ha reso sempre più difficile ottimizzare le risorse e mantenere il controllo sulle applicazioni.

A seguito al suo utilizzo, infatti, siamo arrivati ad alcune considerazioni che riteniamo tutt’ora I pilastri di una strategia legata ai container come l’importanza di:

  • creare una corretta struttura di comunicazione tra container;
  • tenere traccia del deploy dei container, definendo su file le configurazioni necessarie;
  • monitorare lo stato di ciascun container ed avere meccanismi automatici di riparazione in caso di problemi.

Docker ad oggi, tuttavia, come implementazione CRI (Container Runtime Interface) ha fatto il suo tempo. Non è più supportato da Kubernetes stesso e, come puoi immaginare, sono nate altre implementazioni come ContainerD, CRI-O che seguono invece che supportano K8s.

Kubernetes: lo standard de facto per l’orchestrazione dei container

Per affrontare le complessità legate alla gestione di numerosissimi container, è stato necessario adottare un orchestratore: Kubernetes.

Come abbiamo già detto in altri articoli, Kubernetes è un software open-source che facilita il deployment e la gestione dell'intero ciclo di vita del container, assicurando scalabilità e resilienza.

Nonostante Kubernetes sia un potente strumento per il deployment e la gestione dei container, la sua configurazione e manutenzione richiede competenze avanzate, spesso difficili da trovare anche tra esperti Cloud Architect.

Rancher: per semplificare la gestione di Cluster Kubernetes

Per rendere Kubernetes più accessibile e gestibile, molte aziende ricorrono a soluzioni di gestione di Cluster come Rancher.

Rancher è uno stack software completo che semplifica il deployment di nuovi cluster Kubernetes. Abbinando facilità d'uso ed efficienza, Rancher si esegue, a sua volta, in un container e la sua installazione è semplice quanto eseguire un singolo comando.

Una volta eseguito tale comando, il container che ospita Rancher sarà in esecuzione e basterà navigare all'indirizzo IP della macchina che ospita il container e seguire le istruzioni indicate.

Una volta eseguito il login in Rancher poi, creare un nuovo cluster diventa un'operazione intuitiva. Occorrerà definire il nome del cluster, selezionare le macchine host e configurare il CNI (Container Network Interface).

Mai più senza Rancher

In conclusione, in CloudFire scegliamo ed utilizziamo Rancher come gestore di Kubernetes perché:‍

  • Gestione centralizzata ed efficienza: Rancher permette di agire in più modi🎨 dalla creazione al deploy di cluster K8s🛞 e il loro aggiornamento, sia per test interni che per produzione, e soprattutto per la loro gestione. In questo modo tutti i setup vengono gestiti centralmente eliminando completamente errori di configurazione offrendo un'unica dashboard ai vari operatori mantenendo la personalizzazione di ciascun cluster;
  • Sicurezza avanzata 🛡️: Rancher agevola la configurazione del Role Based Acces Control (RBAC) e fornisce reportistiche dettagliate sul suo utilizzo;
  • Monitoring ⚠️& Alerting🚨 rapidi: Rancher facilita l’avvio di un sistema di monitoraggio e alerting basato su Prometheus e Grafana senza necessità di competenze specifiche;
  • Integrazione avanzata: Rancher si integra con alcuni componenti che facilitano ancora di più le operazioni complesse come Longhorn per lo storage direttamente su Kubernetes e NeuVector per la parte di security;
  • No lock-in: Rancher, insieme a CloudFire, permette l'interconnessione con cluster precedentemente installati evitando migrazioni applicative. Su questo punto, infatti, in CloudFire abbiamo già predisposto ed implementato progetti di interconnessione 🖇con l'interfaccia Rancher senza alcuna migrazione applicativa.

Ad oggi possiamo dire che la combinazione di Kubernetes e Rancher permette di affrontare agevolmente le sfide del deploy di container, ottimizzando risorse e migliorando la gestione delle applicazioni.

Se volete approfondire ulteriormente qualche concetto in questo articolo non esitate a contattarci qui.

Potrebbe interessarti anche