Using minikube with --driver=docker fails to forward from localhost to minikube internal address

6/8/2020

Edit - this is on OSX Also, I've tried running minikube service <service-name>, that's shown below and when it tries to open it in a browser I get a "connection refused" signal because the port is closed.

I have a kubernetes deployment that works fine when using --driver=virtualbox. I translated this to use --driver=docker and this almost works except when I do the following

$ minikube service websocket-nodeport
|-----------|--------------------|-------------|-------------------------|
| NAMESPACE |        NAME        | TARGET PORT |           URL           |
|-----------|--------------------|-------------|-------------------------|
| default   | websocket-nodeport |        9000 | http://172.17.0.4:30007 |
|-----------|--------------------|-------------|-------------------------|
🏃  Starting tunnel for service websocket-nodeport.
|-----------|--------------------|-------------|------------------------|
| NAMESPACE |        NAME        | TARGET PORT |          URL           |
|-----------|--------------------|-------------|------------------------|
| default   | websocket-nodeport |             | http://127.0.0.1:62032 |
|-----------|--------------------|-------------|------------------------|
🎉  Opening service default/websocket-nodeport in default browser...
❗  Because you are using a Docker driver on darwin, the terminal needs to be open to run it.

But if I go to

$ curl http://127.0.0.1:62032
curl: (7) Failed to connect to 127.0.0.1 port 62032: Connection refused

nothing happens, it isn't a valid address. However, if I do the following

$ minikube ssh
# inside the VM now
docker@minikube:~$ curl http://172.17.0.4:30007
ok!: websocket-frontend-b7c8dc4b9-5jtg6

I get the response I want! So this means that my service is running and the URL output of the websocket-nodeport address as is internal to minikube is correct but for some reason the local address http://127.0.0.1:62032 isn't be forwarded to the minikube VM.

How do I get this forward to work?

-- John Allard
docker
kubernetes
minikube
service-node-port-range

2 Answers

3/28/2021

$ minikube service <service-name> this will open up a tunnel to connect to the service, make sure the service is a NodePort service.

If it opens a browser and you get a 404 this is because the url in the address bar doesn't exist within your api. Changing the URL PATH to correct URL paths/routes you defined in your API should fix this

-- Onyia Okey
Source: StackOverflow

6/8/2020

To open exposed service run following

$ minikube service <service-name>

This command will open the specified service in your default browser.

-- hoque
Source: StackOverflow