Kubernetes Dashboard is not available

9/12/2019

This is my first time what I'm installing Kubernetes and trying to understand how it works. First problem that I can't solve is opening Dashboard via HTTP protocol using proxy by visting the URL from documentation:

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

Browser's respond is: This site can’t be reached. Localhost refused to connect.


Little bit about my environment!

I've started with virtual machines equipped with:

  1. Master: 2 VCPU, 4GB RAM, Ubuntu 18.04
  2. Worker1: 1 VCPU, 2GB RAM, Ubuntu 18.04
  3. Worker1: 1 VCPU, 2GB RAM, Ubuntu 18.04

All running and connected to a private network.

So far I followed the instructions to setup production environment by installing kubeadm. Than created a single control-plane cluster with kubeadm without joining any nodes yet.

Environment that I created is:

  • Kubernetes version 1.15 (run as root user)
  • Docker version 18.09.9 (run as root user)
  • Calico version 3.8 (run as non-root user)
  • Dashboard version 2.0.0-beta4 (run as non-root user)

All seems to be running.

installing kubernetes dashboard

What I can is to see some respond when I load

https://master-IP:6443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

installing kubernetes dashboard

So what I can't is to open/load Kubernetes Dashboard UI using proxy over HTTP protocol by official Kubernetes Dashboard documentation.


P.S. One thing is unclear to me when setting up a new user to log in to Dashboard using bearer token tied to this user. Shouldn't the value of namespace be changed from kube-system to kubernetes-dashboard according to the changelog of v2.0.0-beta1?

-- Dominik Krulak
kubernetes
kubernetes-dashboard

2 Answers

9/12/2019

I am not sure why you cannot see it using proxy. However, I was able to expose Dashboard on one the IP of one my VMs using NodePort. You need to edit Dashboard's service and replace 'ClusterIP' with 'NodePort'.

-- Maryam Tavakkoli
Source: StackOverflow

9/13/2019

I see that you would like to access the dashboard from your laptop. What you should do is create an admin account called k8s-admin:

$ kubectl --namespace kube-system create serviceaccount k8s-admin
$ kubectl create clusterrolebinding k8s-admin --serviceaccount=kube-system:k8s-admin --clusterrole=cluster-admin

Then setup kubectl on your laptop / workstation: For example for macOS it looks like this (see documentation):

$ brew install kubernetes-cli

Setup a proxy to your workstation. Create a ~/.kube directory on your laptop and then scp the ~/.kube/config file from the k8s (Kubernetes) master to your ~/.kube directory.

Then get the authentication token you need to connect to the dashboard:

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

Store this token, you’ll need it to access the Kubernetes dashboard. Now start the proxy:

$ kubectl proxy

Now open the dashboard by going to:

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

You should see the Token option and then copy-paste the token from the prior step and Sign-In.

You can follow this tutorial.

-- muscat
Source: StackOverflow