Riprendiamo il percorso iniziato nei mesi scorsi sull’approccio Cloud-Native, per mostrare con un caso reale quanto risulti flessibile e potente la tecnologia kubernetes.
A tale scopo, l’articolo illustrerà come implementare in pochi passaggi una dashboard in grado di monitorare un un’architettura k8s.
Il progetto consta di due fasi:
- Creazione del servizio Dashboard
- Accesso via web-browsing alla Dashboard
1. Creazione del servizio: Nel mondo k8s il deploy di un servizio viene effettuato attraverso l’utilizzo di file descrittivi con estensione yaml. E’ un approccio detto dichiarativo che ha nell’imperativo il suo alterego.
Nel nostro scenario è sufficiente utilizzare il seguente comando:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml
Utilizzando il file presente su github recommended.yaml, viene creato in modalità automatica il servizio dashboard all’interno di un nuovo namespace denominato kubernetes-dashboard (vedi immagine 1).
Immagine 1
Per verificare che il servizio sia disponibile è possibile utilizzare il comando:
kubectl get services –namespace=kubernetes-dashboard (vedi immagine 2)
Immagine 2
2. Accesso alla Dashboard (via https)
In Kubernetes l’accesso alle risorse disponbili è basato su RBAC (Role-Base access control) che definisce la relazione tra utente, ruolo e risorse all’interno dell’organizzazione.
Per il servizio Dashboard è possibile utilizzare due file dichiarativi yaml:
a) service-account.yaml (che definisce le autorizzazioni per le risorse in ambito cluster/namespace)
b) cluster-role-binding.yaml (che definisce utenti e/o service account)
Nota1: La concessione dei privilegi di amministratore all’account di servizio per Dashboard potrebbe rappresentare un rischio per la sicurezza. Chiedete al vostro security team.
Siamo quasi giunti al termine, un ultimo sforzo.
- Con il comando: kubectl proxy viene esposta via https la Dashboard all’indirizzo: http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/.
- Con il comando kubectl -n kubernetes-dashboard create token admin-us viene creato il token che autorizza l’utente ad accedere alla console (vedi immagine 3)
Immagine 3
Il risultato dovrebbe essere quello mostrato nell’immagine 4.
Immagine 4
A presto!