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