## Kubernetes-dashboard

Het Kubernetes-dashboard biedt een visuele weergave van de bronnen in het cluster en is ook toegankelijk vanaf uw lokale computer.

Hiervoor zullen we de dashboard moeten ophalen met de volgende opdracht

`kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml`

Nu zullen we controleren of de bronnen met succes zijn gemaakt en of de pods worden uitgevoerd in de nieuwe naamruimte van het dashboard:

kubectl get pods -n kubernetes-dashboard

Nu moeten we een serviceaccount maken dat we zullen gebruiken om toegang te krijgen tot het dashboard: ons account wordt een beheerdersaccount, zodat het via het dashboard nieuwe bronnen kan bekijken, wijzigen en aanmaken. Dit kunnen we doen door de rollen toe te voegen via een clusterRole.

Om het serviceaccount te maken, maak je een nieuw bestand aan:

    nano dashboard-admin.yaml

plak vervolgens de volgende inhoud erin:

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: admin-user
      namespace: kubernetes-dashboard

    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: admin-user
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - kind: ServiceAccount
      name: admin-user
      namespace: kubernetes-dashboard

Nadat we het bestand hebben opgeslagen, passen we het toe via deze opdracht:

`kubectl apply -f dashboard-admin.yaml`

Om verbinding te kunnen maken met het dashboard, moeten we het token vinden dat door het serviceaccount is gegenereerd.

Om het token te krijgen, gebruik je eenvoudig de volgende opdracht: deze opdracht extraheert het geheime object dat aan het account is gekoppeld als JSON-indeling, het neemt het token en decodeert het met base64 om het gewenste token te krijgen:

`kubectl get secret -n kubernetes-dashboard $(kubectl get serviceaccount admin-user -n kubernetes-dashboard -o jsonpath="{.secrets[0].name}") -o jsonpath="{.data.token}" | base64 --decode`

Bewaar dit token, want we hebben het later nodig.

## Toegang tot het dashboard

Een ding dat je moet weten over het Kubernetes-dashboard is dat het alleen toegankelijk is via het localhost-adres op de computer waarop het draait. Daarom hebben we een SSH-tunnel naar de server nodig.

Om dit te doen, kun je met deze opdracht een SSH-tunnel maken. Vervang gewoon de <user> en <master_public_IP> door je Kubernetes master IP en de gebruiker die je gebruikt om er toegang toe te krijgen.

    ssh -L localhost:8001:127.0.0.1:8001 <gebruiker>@<master_public_IP>

In mijn geval heb ik deze opdracht gebruikt om mijn SSH-tunnel te maken:

Gebruik deze opdracht om het Dashboard te starten:

    kubectl proxy

Nu kun je deze URL gebruiken om toegang te krijgen tot je Dashboard-webinterface:

    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

De volgende pagina zal verschijnen, je kunt het token gebruiken dat we in de vorige stap hebben opgeslagen om in te loggen: