14

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
  • 3,564
  • 5
  • 23
  • 42

2 Answers2

3

$ 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
  • 37
  • 2
1

To open exposed service run following

$ minikube service <service-name>

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

hoque
  • 5,735
  • 1
  • 19
  • 29
  • 4
    I'm confused, that's the crux of the issue. As documented, I run `minikube service websocket-nodeport` and it tries to open the page but it shows 404 and that the connection is refused (i.e. http:127.0.0.1:{{port}} is closed) – John Allard Jun 08 '20 at 19:06
  • But 404 is different than connection refused. If you ctrl+c then you get nothing. I 'm also having the same issue, I'm trying to understand what's going on. I'm also on mac with docker driver. – DimiDak Sep 16 '20 at 12:53
  • I am running macos 10, $minikube service fleetman-webapp I get following error:Because you are using Docker driver on darwin, the terminal needs to be open to run it. – jadeite1000 May 29 '22 at 03:45