Accesso Remoto a Minikube Dashboard y Servicios
Consejo Breve
Es común instalar un ambiente privado de Kubernetes usando MiniKube con VirtualBox.
Como se supone que sea una instalación local, los servicios de Minikube se exponen al localhost cuando usamos el comando minikube service
.
Pero digamos que necesitas accesar remotamente o tienes una aplicación web y tu anfitrión no tiene un ambiente gráfico. Aquí una solución rápida.
Port Forwarding
Después de crear tu servicio al exponer tu despliegue:
kubectl expose deployment myapp-deploy --name=myapp-service --type=NodePort --port=80
simplemente necesitas hacer port-forward
de tu pod en ejecución hacia tu interfaz de red externa y hacer que escuche en algún puerto:
kubectl port-forward myapp-6b6cdf6b78-mdw94 --address 0.0.0.0 8080:80
y eso es todo, puedes ver que tu anfitrión esta escuchando en el nuevo puerto:
patovm $ netstat -na | grep LISTEN
tcp6 0 0 :::8080 :::* LISTEN
y puede ser accesado, por ejemplo si tienes una aplicación web apunta hacia la IP externa y el puerto de tu anfitrión:
http://patovm-external-IP:8080
Minikube Dashboard
Similarmente puedes accessar al tablero de control gráfico de Minikube.
Primero habilita el tablero de control y obtén el nombre del pod en ejecución:
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
ahora haz ese pod disponible externamente usando el siguiente comando proxy
:
kubectl proxy --address 0.0.0.0 kubernetes-dashboard-696dbcc666-bwwxt 8001:80 --namespace=kubernetes-dashboard --disable-filter=true
Starting to serve on [::]:8001
y ahora puedes acceder con la siguiente dirección:
http://patovm-external-IP:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
Ahora puedes acceder a tus servicios de Minikube y al Dashboard remotamente.