Kubernetes + Rancher
Ci sono tantissimi modi per avviare un cluster kubernetes, uno di questi è Rancher.
> Articolo d'archivio del 2017, dal vecchio nutellino.it: comandi e versioni potrebbero non essere più attuali.

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:stableUna 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:

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:
- Installazione di docker ad una versione compatibile con Rancher e Kubernetes http://rancher.com/docs/rancher/v1.6/en/hosts/
Brevemente possiamo installare la versione corretta di docker lanciando questo comando:
curl https://releases.rancher.com/install-docker/1.12.sh | shPartiamo 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.

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:

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ì:

Procediamo dunque all'avvio dei due nodi computing:

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 nodesAvremo 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
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
🙂
$ cat ~/archivio/kubernetes-rancher.md
WARNING: questo file è del 2017.
L'ho scritto io, ma un io di qualche anno fa: potrebbe non rispecchiare più quello che penso né quello che so fare.
Continuare? [s/N]