-
Kubernetes, anche noto come K8s, o Kube, è una piattaforma open-source per la gestione e l’orchestrazione di container, permette cioè di automatizzare il deployment, la scalabilità e la gestione di applicazioni distribuite in container. Il progetto è stato sviluppato da Google che nel 2015 lo ha donato alla Cloud Native Computing Foundation. In questa serie di tutorial vedremo quali sono le potenzialità e i vantaggi di Kubernetes esplorandone uso e funzionamento. Per iniziare andremo ad apprendere i concetti fondamentali di Kubernetes su Minikube facendo cioè esperienza in locale, a seguire esploreremo alcuni casi d’uso di queste tecnologie in Cloud.
-
In questo capitolo della serie su Kubernetes saranno presentati i componenti base di un cluster, la Control Plane, i nodi, Minikube, Kubectl e i suoi comandi base.
-
In questa serie vedremo in dettaglio quali sono le caratteristiche di un deployment e come è possibile deployarne uno sul nostro cluster Kubernetes. Prima però, porteremo il nostro cluster su cloud e per farlo useremo il Cloud di Aruba.
-
Finora, abbiamo visto come utilizzare Kubernetes sul Cloud e come creare dei deployment. In questa serie andremo a vedere cosa sono i Service e come avviarli. Vedremo inoltre come gestire la scalabilità del cluster K8s.
-
Kubernetes permette di eseguire parti della nostra applicazione su componenti isolate, i Pod. Tali componenti possono essere rese accessibili tramite i Service Kubernetes, oggetti che fungono da endpoint per le connessioni. Sia i Pod che i Service sono oggetti Kubernetes, ovvero delle astrazioni della struttura del nostro sistema. In questo capitolo vedremo gli oggetti di Kubernetes e come specificarli.
-
I Volumi sono oggetti Kubernetes che servono a gestire l’accesso ai dati all’interno delle applicazioni distribuite su container. Ogni applicazione necessita di accessi in memoria, tuttavia usare una memoria a livello di Container non è una buona scelta, dato che qualora un container dovesse smettere di funzionare, verrebbe riavviato dal kubelet e ogni dato andrebbe perso. Lo stesso vale per l’utilizzo di memorie a livello di singolo Pod, in quanto qualora ci fossero più container che eseguono all’interno dello stesso Pod, ci toccherebbe gestire manualmente la concorrenza.
-
Le applicazioni Kubernetes vengono suddivise in servizi e microservizi che risiedono nei Container e vengono poi distribuite in vari Pod, possibilmente replicati, all’interno del cluster. Per esporre i Pod anche all’esterno, creiamo i Service, che ci forniscono degli indirizzi IP per connetterci a tali Pod. Per accedere ai servizi però, come abbiamo visto, non è possibile usare tali indirizzi IP, in quanto questi cambiano ogni volta che un Pod viene modificato, creato o distrutto e rimangono quindi validi solo nel periodo di vita del Pod. Abbiamo anche visto come scalare i servizi andando a scalare manualmente i Pod. In questo capitolo, vedremo come esporre queste repliche. Per accedere facilmente ai servizi dell’applicazione, Kubernetes mette a disposizione i meccanismi di Service Discovery e Load Balancing.
-
Nel capitolo precedente abbiamo introdotto i concetti di Service Discovery e bilanciamento del carico in Kubernetes. Nell'ultima parte di questa serie su Kubernetes vediamo alcuni metodi alternativi per attuare la Service Discovery, parleremo infine di AutoScaling e del componente HPA (Horizontal Pod Autoscaler).