Google offre una delle più grandi piattaforme Cloud del mondo ovvero la Google Cloud Platform (nel seguito GCP). Come abbiamo appreso all’inizio della nostra guida,
Kubernetes origina proprio dai laboratori Google ed è per questo che la piattaforma di cui stiamo parlando non poteva certo mancare di allestirne una delle implementazioni più importanti: GKE (Google Kubernetes Engine).
Per poterla utilizzare dobbiamo innanzitutto disporre di un account Google e avere un profilo di fatturazione valido (come vedremo, quest'ultimo aspetto non comporterà necessariamente pagamenti). Per il primo, è sufficiente disporre di un account GMail che oltre ad essere uno dei servizi di posta elettronica più usati al mondo rappresenta anche il sistema di accesso universale a qualsiasi servizio Google, Cloud incluso. Basterà infatti collegarsi all'indirizzo console.cloud.google.com e fornire le proprie credenziali Gmail. Questo ci permetterà di visualizzare la console di gestione delle risorse Cloud. Si parte solitamente con un periodo di prova gratuita che offre 300 dollari da utilizzare in servizi Cloud per 90 giorni. Ciò ci permetterà di sperimentare senza alcun esborso ma sarà necessario fornire i dati di una carta di pagamento: si ricordi tuttavia che, anche al termine del periodo di prova, per vedersi richiedere dei pagamenti da Google sarà necessario eseguire esplicitamente un upgrade dell’account.
La console visuale che ci troviamo di fronte permette di svolgere ogni tipo di operazione utilizzando il mouse e compilando campi di form. Noi, nei nostri esempi, opteremo spesso per un altro metodo di interazione: il client gcloud
interrogabile all'interno della Cloud Shell che vedremo a breve. Utilizzabile in maniera gratuita per tutta una serie di operazioni anche senza avere un account di fatturazione.
Cluster Kubernetes: a cosa serve?
Per poter creare un cluster Kubernetes in GKE, dovremo familiarizzare subito con alcuni concetti:
-
la già citata Cloud Shell, essenzialmente una macchina virtuale Linux con tanti strumenti a disposizione - tra cui gli utilissimi
docker
,minikube
ekubectl
- attivabile mediante l'icona ">_"; -
il concetto di progetto che rappresenta nel mondo Cloud di Google una sorta di insieme protetto per la gestione dei permessi. Per attivare risorse sarà sempre necessario creare un progetto Google per via testuale, grazie a
gcloud
, o mediante la comoda creazione guidata della console visuale. Altro aspetto che incontreremo sarà l'attivazione delle API sul progetto ovvero la possibilità di rendere utilizzabili nel progetto solo le funzionalità di cui abbiamo realmente bisogno (nel nostro caso, lo faremo con Kubernetes); - la suddivisione operata - come ogni piattaforma Cloud - da Google, in cui i datacenter nel mondo vengono collocati in regioni suddivise a loro volta in zone. Non ci stupiremo quindi che prima di iniziare ad usare risorse dovremo scegliere la nostra regione di default in cui operare.
Creazione di un progetto
Per creare un nuovo progetto, passando per la console, azioniamo il menù a tendina in alto a sinistra per arrivare ad una finestra che offre il link NEW PROJECT o invochiamo nel browser la pagina console.cloud.google.com/projectcreate. Nel pannello che si apre verrà richiesto di indicare il nome del nuovo progetto.
Questo dato ha uno scopo esclusivamente mnemonico pertanto potremo sbizzarrirci e cambiarlo anche in seguito. Si noti che al di sotto di tale campo form viene indicato anche un Project ID accompagnato da un link con etichetta EDIT. Il Project ID è estremamente importante in quanto comporrà tutti gli identificativi univoci (nel formato di indirizzi Web) che saranno collegati alle risorse che creeremo nel progetto. Agendo su EDIT potremo modificarlo ma solo in fase di creazione del progetto: una volta che questa procedura sarà terminata non avremo più modo di modificare il Project ID. I progetti Google, tra l'altro, sono anche caratterizzati da un terzo parametro che è il Project number ma questo è a esclusiva discrezione di Google e quindi sempre immodificabile, per noi, in qualsiasi momento.
Aperta la Cloud Shell, questa sarà già collegata ad un progetto. Visto che vorremo utilizzare il progetto appena creato ricordiamo sempre due comandi importanti: con gcloud config get project
possiamo verificare qual è il progetto attualmente attivo mentre con gcloud config set project PROJECT_ID
(applicando il PROJECT_ID del progetto che ci interessa) potremo impostare il progetto attivo.
GKE: modalità Standard e modalità Autopilot
Prima di avviarci verso un vero e proprio esempio operativo specifichiamo subito che la prima nostra necessità sarà quella di avere un cluster Kubernetes a disposizione. In GKE esistono due modalità: Standard e Autopilot. La prima è la versione tradizionale, quella che lascia la gestione della configurazione dei nodi totalmente, sotto ogni aspetto, a carico del progettista/sviluppatore. Questa era impostata di default fino a poco tempo fa ma, con l'avvento di Autopilot, Google ha creato una modalità migliore per la stabilità del cluster e migliore per il flusso di lavoro del progettista. Con Autopilot - ormai modalità di default - tutta la configurazione del cluster sarà totalmente demandata a GKE da un punto di vista della sicurezza dei nodi e delle risorse. Questo non limita le nostre possibilità di lavoro anzi agevola la creazione delle applicazioni permettendo di dedicarci solo agli aspetti progettuali.
Dalla prossima lezione, inizieremo a lavorare con GKE e ci affideremo proprio ad Autopilot.