使用带有 --driver=docker 的 minikube 无法从本地主机转发到 minikube 内部地址

Joh*_*ard 12 docker kubernetes minikube service-node-port-range

编辑 - 这是在 OSX 上另外,我试过运行minikube service <service-name>,如下所示,当它尝试在浏览器中打开它时,我收到“连接被拒绝”信号,因为端口已关闭。

我有一个 kubernetes 部署,在使用--driver=virtualbox. 我将其翻译为使用--driver=docker,这几乎有效,除非我执行以下操作

$ 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.
Run Code Online (Sandbox Code Playgroud)

但如果我去

$ curl http://127.0.0.1:62032
curl: (7) Failed to connect to 127.0.0.1 port 62032: Connection refused
Run Code Online (Sandbox Code Playgroud)

什么也没有发生,它不是一个有效的地址。但是,如果我执行以下操作

$ 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.
Run Code Online (Sandbox Code Playgroud)

我得到了我想要的回应!所以这意味着我的服务正在运行,并且websocket-nodeportminikube 内部地址的 URL 输出是正确的,但由于某种原因,本地地址http://127.0.0.1:62032没有转发到 minikube VM。

我如何让这个工作向前推进?

hoq*_*que 2

要打开公开的服务,请运行以下命令

$ minikube service <service-name>
Run Code Online (Sandbox Code Playgroud)

此命令将在默认浏览器中打开指定的服务。

  • 我很困惑,这才是问题的关键。如文档所述,我运行“minikube service websocket-nodeport”,它尝试打开页面,但显示 404 并且连接被拒绝(即 http:127.0.0.1:{{port}} 已关闭) (4认同)