GKE attinge a risorse di Google Compute Engine (GCE) e permette agli utenti di eseguire applicazioni basate su container sui cluster di Google Cloud Platform(GCP). Sull’infrastruttura del cloud di Google gli utenti non sono affatto limitati dal GKE: il Cluster Federation System dell’orchestrator Kubernetes fa sì che si possano sintetizzare risorse di diversi cluster di computer in una federazione di calcolo logica e in caso di necessità permette anche di realizzare scenari di cloud ibridi e multi-cloud.
Ogni cluster realizzato con l’aiuto di GKE è costituito da un master di Kubernetes, sul quale viene eseguito il server API di Kubernetes, e da un numero a scelta di nodi worker, i quali servono le richieste REST del server API ed eseguono i servizi necessari per il supporto di container di Docker.
Mentre il nodo master sorveglia la quantità di risorse coinvolte e lo stato del cluster, le applicazioni containerizzate vengono eseguite sul nodo worker. Se un nodo worker salta, allora il master distribuisce i compiti necessari per l’esecuzione agli altri nodi.
Anche GKE supporta il formato container di Docker, ampiamente diffuso. Per la preparazione di immagini Docker gli utenti hanno a disposizione un registry di container privato e una sintassi basata su JSON permette di definire servizi container come template.
L’integrazione di Kubernetes su GKE offre agli utenti le seguenti funzioni per l’orchestrazione di applicazioni container:
- Automatic Binpacking:Kubernetes posiziona automaticamente i container sulla base di limitazioni e richieste di risorse in modo tale che il cluster sia caricato in maniera equilibrata. Questo impedisce che sia compromessa la disponibilità di applicazioni container.
- Health check con funzione di riparazione automatica: grazie a dei controlli dello stato automatici, Kubernetes assicura che tutti i nodi e container funzionino perfettamente. I nodi o i container che non reagiscono vengono terminati e sostituiti con dei nuovi.
- Ridimensionamento orizzontale: con Kubernetes potete ridimensionare le applicazioni a piacere, sia manualmente con la riga di comando, sia con l’interfaccia utente grafica oppure ancora automaticamente sulla base dell’utilizzo di CPU.
- Service discovery e load balancing: Kubernetes offre due metodi per il service discovery. I servizi possono essere rintracciati tramite variabili di ambiente e record DNS. Si può realizzare un load balancing tra diversi container attraverso indirizzi IP e nomi DNS.
- Orchestrazione dell’archivio: Kubernetes permette il montaggio automatico di diversi sistemi di archiviazione, non importa che si tratti di archivi locali, cloud pubblici (ad esempio attraverso GCP o AWS) oppure di sistemi di archiviazione di rete come NFS, iSCSI, Gluster, Ceph o Flocker.
In maniera analoga a ECS, su AWSGKE è integrato direttamente nella piattaforma cloud di Google, cosicché gli utenti del motore container abbiano a disposizione diverse funzioni del cloud pubblico oltre a quelle dell’orchestrator:
- Identity and Access Management: l’IAM di GKE è realizzato con l’aiuto degli account di Google e supporta i permessi basati sui ruoli degli utenti.
- Stackdriver Monitoring: il tool di Google per il monitoraggio informa gli utenti riguardo all’andamento, la durata dell’attività e lo stato delle applicazioni cloud. Inoltre Stackdriver raccoglie metriche di monitoraggio, risultati e metadati, e li dispone su una bacheca per una chiara comprensione. Come fonte di dati lo strumento supporta la Google Cloud Platform, Amazon Web Services e svariate applicazioni tra cui Cassandra, Nginx, Apache HTTP Server ed Elasticsearch.
- Stackdriver Logging: il tool di Google per il log permette agli utenti la memorizzazione, il monitoraggio e l’analisi di file di log e di eventi. Stackdriver Logging supporta la Google Cloud Platform e Amazon Web Services.
- Container Builder: con il Container Builder Google mette a disposizione uno strumento per la creazione di immagini Docker direttamente sul cloud. Il codice di esecuzione relativo deve essere caricato esclusivamente sul Google Cloud Storage.
Per quanto concerne la concezione dei costi del servizio CaaS, Google segue una strada differente da Amazon. Gli utenti possono utilizzare gratuitamente un container management di cluster avente fino a cinque istanze di Compute Engine (nodi). Gli unici costi di cui dovranno prendersi carico sono quelli relativi alla fornitura delle risorse cloud (CPU, archivio, e così via). Se desiderate eseguire container su cluster più grandi con sei o più istanze, Google aumenta il costo per il motore container: il calcolo finale viene considerato in modo forfettario per singolo cluster su base oraria.
Informazioni principali su Google Container Engine