Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Kubernetes nel Cloud

Sfruttare Kubernetes in Cloud per rispondere al meglio a improvvisi picchi di lavoro alternati con situazioni di basso carico
Sfruttare Kubernetes in Cloud per rispondere al meglio a improvvisi picchi di lavoro alternati con situazioni di basso carico
Link copiato negli appunti

Abbiamo visto sinora che Kubernetes può essere studiato comodamente con applicativi locali (disponibili gratuitamente anche in ambienti pre-installati in Rete) come minikube. Da un punto di vista didattico, a contesti di questo genere non manca proprio niente: si possono utilizzare container, invocare le reali chiamate di sistema, implementare componenti proprie di Kubernetes e sperimentare architetture di applicazioni.

Ciò per cui un ambiente come minikube non è adatto però è la messa in produzione di applicazioni reali dove il vero carico di utenza si riverserebbe. In primis, perché Kubernetes nasce per sfruttare cluster di nodi e la natura mononodo di minikube non lo metterebbe in condizione quindi di esprimersi al meglio. Inoltre, la scalabilità dei sistemi basati su container ha necessariamente bisogno di risorse sottostanti gestite in maniera elastica per poter rispondere al meglio a improvvisi picchi di lavoro alternati con situazioni di basso carico: tale elasticità è offerta specialmente da installazioni in Cloud.

Per tutti questi motivi, uno dei contesti migliori per l'implementazione di Kubernetes in produzione è sicuramente il Cloud sebbene non sia l'unico visto che Kubernetes può lavorare benissimo su cluster di nodi installati in locale, anche su macchine di non elevatissime prestazioni. Ad ogni modo, trovare la possibilità di utilizzare Kubernetes in Cloud non è affatto difficile visto che ormai viene offerto da tutti i principali operatori del settore sposando perfettamente anche le loro politiche di pricing secondo le quali si pagano solo le risorse che si consumano effettivamente.

Le soluzioni in Cloud

Prima di entrare nei dettagli tecnici con le prossime lezioni diciamo che non ci si può esimere dall'analizzare le offerte dei principali attori del Cloud quali Google, Amazon e Microsoft. Si premette subito che spesso questi operatori offrono periodi di prova e fasce di accesso ai servizi gratuiti pertanto la sperimentazione di servizi Cloud potrebbe rivelarsi nei primi tempi molto economica se non gratuita. Tuttavia spesso per attivare tali possibilità è necessario registrare un account di fatturazione che tipicamente richiede dati personali e la registrazione di una carta di pagamento. Si consiglia pertanto di visionare bene le condizioni che vengono richieste al momento delle proprie prove (che potrebbero rivelarsi diverse da quelle valide al momento in cui si
scrive questa guida), i termini di eventuali periodi di prova e fasce di utilizzo gratuito nonché le politiche di pricing in generale dell'operatore Cloud.

Entrando nello specifico, vediamo le principali soluzioni:

  • la Google Cloud Platform offre GKE (Google Kubernetes Engine) che permette la creazione di cluster e l'avvio di applicazioni grazie alla console visuale e allo strumento da riga di comando gcloud;
  • Amazon Web Services offre EKS (Elastic Kubernetes Service) che, oltre alla AWS Management Console, fornisce il comodissimo strumento eksctl con cui è possibile avviare un cluster digitando istruzioni come eksctl create cluster;
  • la piattaforma Azure di Microsoft propone anche il suo servizio denominato AKS (Azure Kubernetes Service) che, con il proprio client da riga di comando, mette l'utente in condizione di avviare un cluster con comandi come az aks create.

Aspetti fondamentali di Kubernetes in Cloud

Al di là delle differenze che potremo trovare tra una piattaforma e l'altra è fondamentale ricordare una serie di aspetti che le accomunano un po' tutte. Innanzitutto, si disporrà di interfacce visuali per l'attivazione ed il monitoraggio dei servizi ma si avrà anche sempre a disposizione un prompt da riga di comando che, mediante strumenti specifici, permetterà di
interagire con il cluster ed impartire comandi diretti.

Il rapporto fondamentale tra configurazione dichiarativa ed imperativa su cui abbiamo battuto tanto nel corso delle lezioni è un elemento imprescindibile di ogni tipo di servizio Kubernetes-based. Anche nel Cloud sarà importante saper gestire bene la configurazione YAML per poter attivare le componenti e dettare a Kubernetes i loro limiti - inferiori e superiori - di utilizzo in modo che questi possa gestirne le risorse.

Altro aspetto fondamentale sono i container. Kubernetes non nasce per sostituire Docker ma è una soluzione che germoglia proprio sul terreno che Docker ha
preparato. Essere buoni sviluppatori/progettisti di architetture Kubernetes rende necessario aver compreso benissimo i container, saper scrivere i loro Dockerfile e prepararne le immagini. Ogni applicazione Kubernetes nascerà come insieme di immagini container attivate e proprio da queste si dovrà partire per preparare i vari elementi che la comporranno. Quindi, qualsiasi sia la piattaforma Cloud che sceglieremo dovremo subito orientarci scoprendo come vengono gestiti i container, quali servizi offrono i registry e quali sono i comandi per definire al meglio le immagini che Kubernetes dovrà richiamare.

Kubernetes nel contesto del Cloud

Altro aspetto da non trascurare riguarda il fatto che usare Kubernetes in una piattaforma Cloud significa usarlo in un contesto in cui è circondato da decine di altri servizi. Ciò significa che non saremo obbligati a implementare tutto con i container ma potremmo, ad esempio, avere dei servizi dello stesso provider in grado di offrire database da integrare nella nostra applicazione Kubernetes. Lavorare in un contesto simile richiederà quindi non solo la conoscenza di Kubernetes ma anche quello di tutto lo scenario a disposizione per evitare di reinventare servizi già esistenti senza affidarsi a soluzioni ben gestite, accessibili e affidabili.

A questo punto, siamo pronti per iniziare e scoprire come implementare soluzioni Kubernetes in Cloud!

Ti consigliamo anche