Ricerca nel sito web

Dashboard dell'interfaccia utente Web per Kubernetes


Su questa pagina

  1. Prerequisiti
  2.  Cosa faremo?
  3. Distribuisci la dashboard di Kubernetes
  4. Imposta un ServiceAccount per accedere alla dashboard di Kubernetes
  5. Accedi alla dashboard di Kubernetes
  6. Conclusione

Il dashboard Kubernetes fornisce un'interfaccia utente basata sul Web per il cluster. È possibile distribuire le applicazioni sul cluster utilizzando il dashboard e risolvere i problemi delle applicazioni esistenti nel cluster. Il dashboard fornisce anche informazioni dettagliate sulle risorse nel cluster. Il dashboard è fornito ufficialmente da Kubernetes. È possibile creare, modificare, aggiornare ed eliminare oggetti Kubernetes utilizzando il dashboard.

In questo articolo installeremo la dashboard ufficiale fornita da Kubernetes e configureremo un account di servizio per accedervi. Prima di procedere con questo articolo, si presuppone che tu abbia familiarità con Kubernetes e disponga di un cluster Kubernetes.

Prerequisiti

  1. Cluster Kubernetes con almeno 1 nodo di lavoro.
    Se vuoi imparare a creare un cluster Kubernetes, fai clic qui. Questa guida ti aiuterà a creare un cluster Kubernetes con 1 nodo master e 2 nodi di lavoro su istanze AWS Ubuntu 18.04 EC2.
  2. Comprensione di base di Kubernetes.

Che cosa faremo?

  1. Distribuisci la dashboard di Kubernetes.
  2. Imposta un ServiceAccount per accedere al dashboard di Kubernetes.
  3. Accedi alla dashboard di Kubernetes.

Distribuisci il dashboard di Kubernetes

Per implementare la dashboard di Kubernetes, possiamo scaricare il suo file oggetto da Github. Utilizzare il seguente comando per scaricare il file oggetto. Questo file contiene le definizioni di Namespace, ServiceAccount, Service, Secret, ConfigMap, Role, ClusterRole, RoleBinding, ClusterRoleBinding, Deployment e Service.

pwd
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml

Rinominare il file e modificare il tipo di servizio in NodePort. Fare riferimento allo screenshot seguente.

mv recommended.yaml kubernetes-dashboard-deployment.yml
vim kubernetes-dashboard-deployment.yml

Dopo aver modificato il tipo di servizio in NodePort, è il momento di creare tutti gli oggetti responsabili del deployment della dashboard di Kubernetes.

kubectl apply -f kubernetes-dashboard-deployment.yml

Controlla il deployment, il pod e il servizio che è stato creato dal comando precedente. Il comando precedente crea anche Namespace, ServiceAccount, Service, Secret, ConfigMap, Role, ClusterRole, RoleBinding, ClusterRoleBinding, Deployment e Service.

kubectl get deployments -n kubernetes-dashboard
kubectl get svc
kubectl get pods
kubectl get pods -n kubernetes-dashboard
kubectl get svc -n kubernetes-dashboard

Nello screenshot sopra, puoi vedere che è stato creato Kubernetes Dashboard Service con il tipo \NodePort\ . Significa che la dashboard sarà disponibile su qualsiasi IP dei nodi su NodePort \32304\. Potresti vedere una porta diversa per il servizio sul tuo cluster.

Utilizza il seguente comando per ottenere gli IP dei tuoi nodi che ti serviranno nei passaggi successivi.

kubectl get nodes -o wide

Imposta un ServiceAccount per accedere alla dashboard di Kubernetes

Per accedere alla Kubernetes Dashboard devi disporre di un token. Per creare un token dobbiamo prima creare un ServiceAccount

Crea un nuovo file e aggiungi il seguente contenuto per creare un ServiceAccount. Puoi anche scaricare il file oggetto dal mio repo GitHub.

vim admin-sa.yml
cat admin-sa.yml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: rahul-admin
  namespace: kube-system

Una volta che hai il file oggetto, esegui il seguente comando per creare un ServiceAccount.

kubectl apply -f admin-sa.yml

Ora devi associare il ServiceAccount \rahul-admin\ al ruolo del cluster \cluster-admin\. Crea un nuovo file con i seguenti contenuti per creare un ClusterRoleBinding o fai clic qui per scaricare il file oggetto dal mio repository Github.

vim admin-rbac.yml
cat admin-rbac.yml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: rahul-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: rahul-admin
    namespace: kube-system

Eseguire il seguente comando per creare un \ClusterRoleBinding\.

kubectl apply -f admin-rbac.yml

Ora abbiamo un \ClusterRole\ --> \cluster-admin\  associato a \ServiceAccount\ --> \rahul-admin\.

Ora siamo pronti per recuperare il token da utilizzare per accedere alla dashboard di Kubernetes. Per recuperare il token, eseguire i seguenti comandi.

SA_NAME="rahul-admin"
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${SA_NAME} | awk '{print $1}')

Nello screenshot qui sopra, puoi vedere un token da utilizzare per accedere alla dashboard di Kubernetes. Copia questo token e seleziona l'URL del dashboard su \NodeIP:NodePort\.

Qui, NodeIP è l'IP di uno qualsiasi dei nodi nel cluster e NodePort è la porta (in questo caso è 32304, nel tuo caso potresti avere una porta diversa) del servizio che abbiamo creato.

Dopo aver premuto l'URL \NodeIP:NodePort\, verrà visualizzata una schermata come la seguente. Qui, seleziona l'opzione \Token\, inserisci il token che abbiamo recuperato nel passaggio precedente e fai clic sul pulsante \Accedi\.

Accedi alla dashboard di Kubernetes

Dopo aver eseguito correttamente l'accesso, dovresti vedere la Kubernetes Dashboard come segue.

Nella parte superiore dello schermo, puoi persino modificare lo spazio dei nomi e visualizzare le risorse al suo interno. Ora sei pronto per esplorare la dashboard di Kubernetes.

Conclusione

In questo articolo, abbiamo distribuito tutti gli oggetti Kubernetes necessari per avere il dashboard nel cluster. Abbiamo creato un ServiceAccount e un ClusterRoleBinding per avere un token per accedere al dashboard di Kubernetes in quanto non è possibile accedervi semplicemente. La dashboard può aiutarti a comprendere meglio il cluster e vedere tutti gli oggetti che contiene.