Remote Access Minikube Dashboard and Services
Quick Tip
It’s common to setup a private Kubernetes environment using MiniKube with VirtualBox.
As it is intended to be a local installation, the services on Minikube are exposed to the localhost when using the command minikube service
.
But lets say you need to access remotely, or you have a web application and your host does not have a graphical interface. Here a quick solution.
Port Forwarding
After you create your service by exposing your deployment:
kubectl expose deployment myapp-deploy --name=myapp-service --type=NodePort --port=80
you simply need to port-forward
your running pod to your external network interface and let it listen on some port:
kubectl port-forward myapp-6b6cdf6b78-mdw94 --address 0.0.0.0 8080:80
and that’s it, you can see your host is listening in the new port:
patovm $ netstat -na | grep LISTEN
tcp6 0 0 :::8080 :::* LISTEN
and it can be accessed, for example if you have a web app just point to the host’s external IP and port:
http://patovm-external-IP:8080
Minikube Dashboard
Similarly you can access your Minikube graphical dashboard.
First enable the dashboard and get the running pod name:
pato@patovm:~$ minikube addons enable dashboard
* The 'dashboard' addon is enabled
pato@patovm:~$ kubectl get pods --namespace=kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-84bfdf55ff-5zw5d 1/1 Running 0 28s
kubernetes-dashboard-696dbcc666-bwwxt 1/1 Running 0 28s
now make that pod available externally by using the following proxy
command:
kubectl proxy --address 0.0.0.0 kubernetes-dashboard-696dbcc666-bwwxt 8001:80 --namespace=kubernetes-dashboard --disable-filter=true
Starting to serve on [::]:8001
and it can be accessed with the following address:
http://patovm-external-IP:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
You can access your Minikube Services and Dashboard remotely.