Kubernetes Cloud: servizi Cloud per Kubernetes, mini guida pratica

Kubernetes Cloud: vediamo da vicino Amazon Elastic Kubernetes Service (EKS)  Google Kubernetes Engine (GKE) e Servizio Azure Kubernetes (AKS)

I Servizi Cloud Per Kubernetes piùI Servizi Cloud Per Kubernetes più popolari sono senza alcun dubbio Amazon Elastic Kubernetes Service (EKS) Google Kubernetes Engine (GKE) Azure Kubernetes Service (AKS)

Questi servizi sono così detti “managed”. Che cosa si intende per “managed”.

In sostanza chi carica i file di configurazione di un server su Kubernetes, si ritrova a beneficiare del provisioning di tutta l’architettura lato server che viene fatta da kubernetes stesso grazie al lavoro svolto da questi providers. 

Li vediamo da vicino e capiamo quanto possono essere utili per chi ha intenzione di utilizzare Kubernetes al massimo livello.

Amazon Elastic Kubernetes Service (EKS)

Amazon Elastic Kubernetes Service è un servizio relativamente nuovo; rilasciato nel 2018, negli ultimi anni è stato protagonista di una crescita costante, voluminosa a tratti inarrestabile.

Con EKS è possibile avviare, eseguire e ridimensionare le applicazioni Kubernetes nel cloud AWS o in locale. EKS si basa su Kubernetes Upstream, questo servizio è infatti disponibile in più AWS Regions, ovverosia data center sparsi in giro per il mondo.

EKS include alcune opzioni di sicurezza e crittografia integrate, oltre ad automatizzare le attività di gestione chiave di Kubernetes come l’applicazione di patch, il provisioning dei nodi e i vari aggiornamenti come l’aggiornamento automatico e l’integrazione con CloudWatch per la registrazione, CloudTrail per il controllo e  IAM per le autorizzazioni di accesso. Inoltre per massimizzare le funzionalità dei suoi utenti, AWS contribuisce anche al codebase K8s open source.

Più recentemente AWS ha anche introdotto una nuova distribuzione K8s open source, si chiama EKS Distro, ed è una nuova opzione di distribuzione per Amazon EKS che ti consente di creare e gestire cluster Kubernetes sulla tua infrastruttura, includendo anche le macchine virtuali.

Google Kubernetes Engine (GKE)

Google Kubernetes Engine è il primo servizio cloud Kubernetes “managed” che ha saputo imporsi sul mercato. Stiamo parlando di un ambiente gestito per la distribuzione e la gestione di applicazioni containerizzate in un’infrastruttura Google sicura e flessibile.

GKE è considerata al giorno d’oggi una delle piattaforme Kubernetes più avanzate disponibili sul mercato. Progettato inizialmente per l’utilizzo su Google Cloud, può essere distribuito indistintamente in ambienti ibridi e in locale. GKE ha oltremodo semplificato la creazione di cluster: non a caso il tool offre alcune funzionalità avanzate di gestione dei cluster, tra cui il bilanciamento del carico, la scalabilità automatica, alcuni aggiornamenti automatici come la riparazione automatica del server, la registrazione e il monitoraggio.ng. 

Azure Kubernetes Service (AKS)

AKS di Microsoft sta pian piano diventando l’applicativo più utilizzato dagli utenti Kubernetes. Come con GKE e EKS, AKS è in grado di offrire ai propri utenti un ambiente K8s upstream gestito con aggiornamenti automatici con tanto di monitoraggio del cluster per semplificare la distribuzione e la gestione delle operazioni di Kubernetes. AKS offre diversi modalità per eseguire il provisioning di un cluster: console Web, riga di comando, Azure resource manager, Terraform e tanto altro ancora.

Dovete sapere che Il servizio Azure Kubernetes (in precedenza conosciuto come ACS – Azure Container Service ) è nato come piattaforma indipendente dall’orchester che supporta Kubernetes. E’ infatti sul finire del 2017 che Microsoft ha iniziato ad offrire servizi di gestione Kubernetes e, di conseguenza, ha deciso di deprecare ACS continuando ad offrire il proprio “affiancamento” a Kubernetes grazie a AKS.

Come funziona Kubernetes: funzionamento e struttura

Come funziona Kubernetes: mini guida per capire il funzionamento di uno dei tools più importanti per un developer oggi

Come funziona Kubernetes? Lo vediamo in questa mini guida tenendo sempre in considerazione che Kubernetes è un tool di grande rilevanza per un developer che vuole crescere e che realmente crede nella sua professione.

Iniziamo con il definire che cos’è Kubernetes (Cos’è Kubernetes), proprio perché stiamo parlando di una piattaforma di orchestrazione per container open source, progettata per l’esecuzione di applicazioni e servizi distribuiti su larga scala.

Ok, detto questo, che vuol dire poco e niente, vediamo come funziona Kubernetes e quali sono le funzionalità principali di questo strumento Devops che più di ogni altro oggi completa in maniera significativa le skills di un developer.

(altro…)

Docker vs Kubernetes: vediamo in cosa differiscono

Docker vs Kubernetes: vediamo in cosa differiscono e perché a volte si tende a far confusione

Spesso sentiamo chiedere in giro se è meglio usare Docker o Kubernetes, come se si dovesse scegliere l’uno o l’altro. Ma è come paragonare mele e torte di mele. Se te lo sei chiesto anche tu, non ti preoccupare: è un fraintendimento molto comune.

(altro…)

Kubernetes: cos’è e tutto quello che non puoi non sapere a riguardo

Perché scegliere Kubernetes

In questo articolo parliamo di Kubernetes, la piattaforma opensource che permette a tutti coloro che la utilizzano di gestire i carichi di lavoro e i servizi containerizzati.

Il suo nome deriva dal greco e significa “pilota” o “timoniere”: questo ci fa capire quanto questo strumento sia utile per gestire i carichi di lavoro e la gestione automatica dei container. Le sue caratteristiche principali quali la vasta gamma di funzionalità e la portabilità tra i diversi cloud provider, hanno contribuito alla sua diffusione e al suo utilizzo da parte degli sviluppatori di tutto il mondo.

(altro…)

Come funziona Docker Repository

Avvicinandoti a Docker avrai sentito parlare di Docker Repository e ti sarai chiesto di cosa si tratta. Siediti comodo che in questa mini guida ti spieghiamo tutto nel dettaglio.

Un Docker repository è un contenitore che contiene una o più Docker image relative ad un software o ad un progetto. Perché più Docker image se il software è sempre lo stesso? Perché di un software si possono avere più versioni.

Ogni volta che lo sviluppatore del software rilascia una nuova versione crea una nuova Docker Image, con lo stesso nome, ma con una versione diversa e successivamente pubblica l’immagine sullo stesso repository.

(altro…)

Come installare docker su Windows

Windows è forse il sistema operativo che richiede più attenzione al momento dell’installazione di Docker. Ci sono infatti alcuni prerequisiti che è necessario tenere in considerazione.

 

Versioni di Windows supportate

Prima di installare Docker per Windows assicurati di avere una versione di Windows compatibile: ad oggi le versioni supportate sono: Windows 10 64-bit: Home, Pro, Enterprise, o Education, versione 1903 (Build 18362 o superiore).

Windows Subsystem per Linux

Come descritto nella documentazione ufficiale di Docker, è necessario prima di installare Docker su Windows, installare il “Windows Subsystem for Linux”.

(altro…)

Come funziona Docker: struttura e funzionamento

Negli ultimi anni, Docker si è guadagnato un posto importante nella vita quotidiana degli sviluppatori. Vediamo di fare una panoramica di questo tool e capire come funziona Docker dietro le quinte.

Caratteristiche di Docker

Una delle funzionalità  più importanti offerte da Docker è il tempo di avvio istantaneo. Un container Docker può essere avviato in una frazione di tempo minima, un’operazione velocissima che niente ha a che vedere con i minuti che ci vogliono per l’avvio di una macchina virtuale.

Docker utilizza le funzionalità  del kernel Linux per l’avvio e l’interazione con i container. A causa di questa dipendenza dal kernel Linux, quando Docker viene eseguito su altri sistemi come MacOs, viene avviato un ulteriore livello di virtualizzazione, che normalmente viene “mascherato” da Docker for Mac (come utente utilizzatore non noterai la differenza, se non in termini di velocità ).

Cos’è la virtualizzazione?

Docker è uno strumento utilizzato per eseguire container: I container sono simili alle macchine virtuali pertanto simulano una macchina in esecuzione all’interno del tuo computer reale. Se non hai mai utilizzato VirtualBox o VMware, ad esempio potresti avere familiarità  con le macchine virtuali utilizzate per eseguire Windows all’interno di un Mac.

Una macchina virtuale simula tutte le parti di un computer reale, inclusi lo schermo e il disco rigido, che sul computer reale (spesso indicato come host) è solo un grande singolo file (chiamato disco rigido virtuale). Su una macchina virtuale (o VM) che esegue Windows, il disco rigido virtuale contiene tutto il codice del sistema operativo Windows, che può essere di diversi gigabyte.

Windows nella VM non sa di essere in esecuzione all’interno di una simulazione e dunque in sostanza all’interno di un vero computer, “pensa” solo di essere egli stesso il sistema operativo principale. Docker per intenderci, come VirtualBox, “virtualizza” un sistema operativo all’interno di un sistema operativo host.

Qual è la differenza tra una VM e un container?

L’utilizzo di una macchina virtuale può essere impegnativo per un processore. Nell’esempio di prima, non solo l’host Mac esegue tutte le attività  in background di Mac OS, ma esegue anche tutte le attività  in background di Windows, che costituiscono tutte un programma pesante per l’host.

Il sistema operativo host ha il controllo sulla potenza di elaborazione che è in grado di fornire ad un programma ed è proprio per questo motivo che le macchine virtuali spesso funzionano molto lentamente.
Può essere dunque particolarmente faticoso eseguire più VM contemporaneamente, perché ciò significherebbe chiedere ad un computer di eseguire diversi sistemi operativi contemporaneamente mantenendo giganteschi dischi rigidi virtuali contenenti diversi sistemi operativi.

L’esecuzione di più istanze dello stesso sistema operativo è spesso ridondante e non necessaria, inoltre rischia di vanificare l’esecuzione di un sistema operativo virtualizzato.

I container invece condividono risorse ridondanti, come alcuni file del sistema operativo di grandi dimensioni, e le risorse hardware vengono assegnate dinamicamente a seconda della necessità  di ogni container sul momento.

come funziona Docker

In conclusione

I Docker container sono molto utili per creare ambienti isolati in cui eseguire programmi separati senza interferire tra loro, infatti facilitano la vita dello sviluppatore che si troverà  a lavorare in un ambiente isolato senza interferire con la configurazione dell’host.

Se desideri saperne di più su Docker, puoi leggere “How to get started with Docker“, per scoprire come scrivere un Dockerfile, per creare immagini personalizzate e per capire come utilizzare Docker Compose per orchestrare diversi container Docker.