12

编辑 - 这是在 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.

但如果我去

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

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

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

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

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

4

2 回答 2

2

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

$ minikube service <service-name>

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

于 2020-06-08T11:42:41.570 回答
2

$ minikube service <service-name> 这将打开一个连接到服务的隧道,确保该服务是 NodePort 服务。

如果它打开浏览器并且你得到一个,404这是因为地址栏中的 url 在你的 api 中不存在。将 URL PATH 更改为您在 API 中定义的正确 URL 路径/路由应该可以解决此问题

于 2021-03-28T04:11:50.730 回答