Kubernetes by IKOULA
Kubernetes: la soluzione dedicata alla gestione dei containers
Che cos’è Kubernetes?
Kubernetes, comunemente chiamato « k8s », ha l’obiettivo automatizzare l’implementazione, la gestione, l’esecuzione e la coordinazione delle applicazioni presenti nei container implementati su un insieme di macchine (fisiche o virtuali) durante tutto il ciclo di vita di queste ultime.
Questo progetto, lanciato nel 2015, è stato inizialmente sviluppato a livello interno dalla società Google e poi offerto alla “Cloud Native Computing Foundation” (C.N.C.F.)
Il funzionamento di Kubernetes
Kubernetes è uno strumento innovativo che incorpora dei concetti e delle nozioni che gli sono propri.
Architettura
- Il piano di controllo : Talvolta chiamato « Master », si tratta di una macchina (o di più di una, se si desidera implementarlo in alta disponibilità) incaricato dell’esecuzione dell’applicazione master (fornendo l’A.P.I.) così come dei container interni responsabili del pilotaggio et dello stoccaggio della configurazione dell’infrastruttura Kubernetes.
- Il piano dati : Chiamato anche « Worker » o « Nodes » : si tratta della macchina (o dell’insieme di macchine) che ospitano i containers (chiamati « Pods » nel gergo Kubernetes) e pilotati dal piano di controllo mediante un’applicazione chiamata “Kubelet”.
Concetti
- I pods : Nel contesto di Kubernetes, i Pods sono degli insiemi di containers identici eventualmente ripartiti su diversi Nodi.
Mediante questa replicazione, il sistema assicura così una ridondanza e una distribuzione del carico ideale.
- I servizi : Si tratta di un elemento volto a definire quali Pod devono lavorare insieme e quali politiche di accesso devono essere realizzate in vista della fornitura di un servizio.
- Il controller : Si tratta di un componente interno che gestisce l’implementazione, la creazione o la distruzione dei Pods di cui hanno la gestione in funzione di regole stabilite (scalabilità o salita/discesa nella versione per esempio).
- Lo scheduler : Questa componente è responsabile del bilanciamento del carico, ossia della ripartizione equa dei pod sui diversi nod disponibili.
Quali sono i suoi vantaggi?
Come menzionato in precedenza, la containerizzazione permette agli utenti di concentrarsi sul funzionamento dell’applicazione senza doversi preoccupare della gestione del sistema operativo o dell’infrastruttura.
Tuttavia certe applicazioni devono essere ripartite in diversi containers e, per quanto vantaggiose, queste implementazioni richiedono un lavoro considerevole per la loro messa in opera.
È proprio lì che Kubernetes interviene e semplifica l’uso: gli basta indicare la composizione di un’applicazione multi-container et lo strumento si occuperà dell’implementazione e della sorveglianza, e metterà a vostra disposizione numerosi strumenti che faciliteranno gli aggiornamenti e le modifiche.
Un ultimo vantaggio di Kubernetes risiede nella sua polivalenza : può essere installato presso ambienti multipli come un’istanza Cloud o un server fisico o ancora fornito in modalità integrata da un provider.
Libertà e gestione
Perché scegliere IKOULA?
Scegliere di implementare Kubernetes su IKOULA offre numerosi vantaggi :
- Una vera libertà di implementazione : Nella continuità dell’approccio aperto e open source della nostra soluzione di cloud public CLOUD IKOULA ONE, proponiamo agli utenti una flessibilità totale nella loro infrastruttura Kubernetes. Nulla li costringe a implementare l’insieme delle loro risorse unicamente con noi.
Sono possibili diversi scenari.. Possono scegliere se preferiscono ospitare integralmente i loro “Nodi” e il loro master presso di noi, o se preferiscono ospitare i loro “Nodi” presso degli altri host pur installando il master presso di noi, e viceversa. - La gestione della versione software : Mentre la maggior parte degli host decide unilateralmente degli aggiornamenti automatici, con IKOULA gli utenti possono gestire autonomamente il versioning e gli aggiornamenti.
- La realizzazione di un piano di controllo dedicato : Terminate le infrastrutture containerizzate o condivise, qui gli utenti dispongono di un piano di controllo che gli è proprio (implementato in un’istanza dedicata) al fine di pilotare il tutto mediante l’API Kubernetes o mediante un client tipo “kubectl”.
- Il supporto dei server fisici : Essendo coscienti che certi carichi di lavoro beneficiano notevolmente di un ambiente fisico, la nostra offerta Kubernetes permette l’l’aggiunta di « Nodes » implementati su dei server fisici (presso IKOULA o presso un altro host).
Ecco anche in questo caso la gestione: fornitura di un server Node K8s preconfigurato, installazione e configurazione automatica mediante uno script, nonché installazione manuale del kubelet su di un sistema esistente. - Un laboratorio Kubernetes per testare lo strumento prima di lanciarsi : Soluzioni quali « Minikube » (https://kubernetes.io/docs/tutorials/hello-minikube/) o « K3S » (https://k3s.io/) permettono all’utente di familiarizzare con l’ambiente Kubernetes, lavorando su di un cluster con un solo nodo. Esiste in maniera pre-installata tra le applicazioni One-Click create da IKOULA.
- Una fatturazione chiara e semplificata : Kubernetes « Master » (o « Piano di Controllo ») funzionante sulla base di una VM Medium, e Kubernetes « Worker » (o « Piano Dati ») sulla base di una VM Small (minimo), la fatturazione è fatta secondo le tariffe corrispondenti alla natura delle risorse e al tempo d’impiego di queste ultime.
Come installare Kubernetes in un click?
Poiché l’installazione delle VM che supportano Kubernetes, il suo Piano di Controllo e/o i suoi Worker può rivelarsi complicata, abbiamo pre-installato queste applicazioni e le abbiamo rese implementabili in un click.