Kubernetes + Rancher

October 15, 2017 0 Comments Docker, Kubernetes, Baremetal, Rancher

Ci sono tantissimi modi per avviare un cluster kubernetes, uno di questi è Rancher.

Rancher è molto versatile perché permette di gestire più cluster Kubernetes con una unica interfaccia web unificata. Vi permette inoltre di gestire i nodi del cluster, l'aggiunta, la rimozione , il deploy di applicazioni tramite una webshell e altro.

In questa guida vedremo come avviare un cluster kubernetes di 5 nodi, utilizzando 3 nodi come orchestrator + etcd e 2 nodi come computing semplice (solo esecuzione dei pod).

I requisiti sono:

  • 1 macchina con docker esterna dal cluster dove avvieremo il container di Rancher server
  • 5 macchine virtuali ubuntu, dove andremo ad installare i prerequisiti e i vari nodi di kubernetes
  • dimestichezza con i comandi Kubectl per la gestione di un cluster Kubernetes
  • tutti i nodi devono essere nella stessa rete

Partiamo quindi con l'installazione di rancher server.

Lanciamo il comando che troviamo nel quickstart https://rancher.com/quick-start/

sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable  

Una volta completato l'avvio, basterà accedere all'indirizzo ip del computer/server in cui abbiamo avviato rancher/server, es: http://10.42.0.2:8080

Ora dovremo creare un nuovo environment kubernetes all'interno di Rancher, vediamo un piccolo video su come fare:

Video Rancher

A questo punto dovremo aggiungere gli hosts, che saranno le altre nostre 5 macchine, clicchiamo dunque su add a hosts.

Prerequisiti dei nodi del cluster:

Brevemente possiamo installare la versione corretta di docker lanciando questo comando:

curl https://releases.rancher.com/install-docker/1.12.sh | sh  

Partiamo prima di tutto a creare i 3 nodi master + etcd, per chi non ha mai usato Kubernetes sono i nodi che gestiscono il workload all'interno del cluster e contengono le informazioni di stato (etcd)

Vi verrà chiesto qual'è l'indirizzo pubblico accessibile dalle altre macchine di rancher server, inserite l'ip della rete lan comune.

Video Rancher 2

Prendiamo il comando appena copiato e lanciamolo nei primi tre nodi, in questo modo si avvierà un container privilegiato che comincerà ad installare i servizi di Kubernetes all'interno del nodo. Notiamo che sono stati aggiunti due label, orchestration e etcd a true.

NB: Lanciare un container alla volta e attendere che nella schermata hosts i servizi siano tutti attivi.

Vedremo una situazione simile alla seguente:

Video Rancher 3

Bisognerà attendere fino a quando tutti i servizi avranno un pallino verde. Una volta che il primo hosts sarà attivo, potremo collegarci alla ui di kubernetes e verificarne lo stato.
In questo momento possiamo procedere all'aggiunta degli altri due nodi master, uno alla volta.

Completata l'installazione avremo una situazione così:

Immagine rancher 1

Procediamo dunque all'avvio dei due nodi computing:

Video Rancher 4

Notiamo invece in questo caso, che è stato aggiunto solo il label compute a true.
Lanciamo il comando appena copiato nelle altre due macchine, e attendiamo che vadano online anche loro.

Alla fine di tutto il setup, potremo cominciare ad usare il nostro cluster kubernetes! Per prima cosa verifichiamo dalla webshell che il sistema sia up, con il comando:

kubectl get nodes  

Avremo un output come il seguente:

NAME                                       STATUS    ROLES     AGE       VERSION  
nodokube-1.c.nth-passage-183120.internal   Ready     <none>    17m       v1.8.10-rancher1  
nodokube-2.c.nth-passage-183120.internal   Ready     <none>    14m       v1.8.10-rancher1  
nodokube-3.c.nth-passage-183120.internal   Ready     <none>    9m        v1.8.10-rancher1  
nodokube-4.c.nth-passage-183120.internal   Ready     <none>    4m        v1.8.10-rancher1  
nodokube-5.c.nth-passage-183120.internal   Ready     <none>    4m        v1.8.10-rancher1  

Video Rancher 5

Questo conclude la guida sull'installazione di un cluster Kubernetes utilizzando Rancher.

Prossimamente vedremo come gestire il provisioning automatico dei persistent volumes all'interno del cluster utilizzando heketi

🙂

Samuele Chiocca
Padova, italy Website