当 Mac 上的 minikube 被要求 URL 时,为什么它反而在隧道中启动服务?
When minikube on Mac is asked for URL, why does it instead start a service in a tunnel?
我在 Mac (Catalina) 中安装了最新的 Docker、Minikube 和 kubectl。我最近也有一个 MySQL,在 PATH 中正确安装了命令行。我正在使用股票终端 (zsh)。
Docker 开始很好,告诉我它已安装 pods。
Minikube 启动良好,kubectl 获取有关其工件的所有报告。
Jeromes-MacBook-Pro:cloudnative-statelessness jerome$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/mysql-7dbfd4dbc4-sz8ps 1/1 Running 0 15m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 20m
service/mysql-svc NodePort 10.111.176.15 <none> 3306:30022/TCP 15m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/mysql 1/1 1 1 15m
NAME DESIRED CURRENT READY AGE
replicaset.apps/mysql-7dbfd4dbc4 1 1 1 15m
当我 运行 minikube 服务 mysql-svc --url 我期望得到一个 URL,就像来自另一台机器的这个:http://192.168.99.101:31067。相反,我看到了一些关于在 'tunnel':
中启动服务的信息
Jeromes-MacBook-Pro:cloudnative-statelessness jerome$ minikube service mysql-svc --url
Starting tunnel for service mysql-svc.
|-----------|-----------|-------------|------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|-----------|-------------|------------------------|
| default | mysql-svc | | http://127.0.0.1:64966 |
|-----------|-----------|-------------|------------------------|
http://127.0.0.1:64966
❗ Because you are using a Docker driver on darwin, the terminal needs to be open to run it.
此时终端无响应。
我相信 minikube 服务 SERVICENAME 应该尝试启动一个服务,return 那个文本块。我也相信 --url 后缀应该只是 returns URL 列中的内容,并跳过启动服务。
关于如何在 Mac 上获得我想要的结果的任何好的解释?
顺便说一句,一旦终端会话显示“因为...”,我该如何恢复对它的控制?
谢谢,
杰罗姆。
2020 年 8 月 14 日更新:
我采纳了 Saravanan 的建议。我从我的 Mac 中卸载了 Docker 并使用自制程序安装 docker + docker-machine + virtualbox(参见 https://www.robinwieruch.de/docker-macos)。当我 运行 "minikube service mysql-svc --url" 我不再遇到隧道问题。谢谢你,Saravanan。
我的问题已经演变成从 Docker Hub 获取正确版本的容器(编译的应用程序,然后 运行 到 docker 构建)。 YAML 文件在我的帐户中有指向那里,但恐怕我有一个过时的版本。我该怎么做才能在我的 Mac 上覆盖我的当前版本,或者删除 Docker 容器以便 kubectl create 可以获得更新的版本?
这是因为您的 minikube 映像 运行 在容器中。
尝试在虚拟框中将配置更改为 运行。然后你可以在没有隧道的情况下到达你的 sql pod。
# first delete the existing minikube image
$ minikube delete
# change the minikube driver to virtualbox
$ minikube config set vm-driver virtualbox
# start minikube again
$ minikube start
Ensure you have virtual box installed before proceeding
我在 Mac (Catalina) 中安装了最新的 Docker、Minikube 和 kubectl。我最近也有一个 MySQL,在 PATH 中正确安装了命令行。我正在使用股票终端 (zsh)。
Docker 开始很好,告诉我它已安装 pods。
Minikube 启动良好,kubectl 获取有关其工件的所有报告。
Jeromes-MacBook-Pro:cloudnative-statelessness jerome$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/mysql-7dbfd4dbc4-sz8ps 1/1 Running 0 15m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 20m
service/mysql-svc NodePort 10.111.176.15 <none> 3306:30022/TCP 15m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/mysql 1/1 1 1 15m
NAME DESIRED CURRENT READY AGE
replicaset.apps/mysql-7dbfd4dbc4 1 1 1 15m
当我 运行 minikube 服务 mysql-svc --url 我期望得到一个 URL,就像来自另一台机器的这个:http://192.168.99.101:31067。相反,我看到了一些关于在 'tunnel':
中启动服务的信息Jeromes-MacBook-Pro:cloudnative-statelessness jerome$ minikube service mysql-svc --url
Starting tunnel for service mysql-svc.
|-----------|-----------|-------------|------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|-----------|-------------|------------------------|
| default | mysql-svc | | http://127.0.0.1:64966 |
|-----------|-----------|-------------|------------------------|
http://127.0.0.1:64966
❗ Because you are using a Docker driver on darwin, the terminal needs to be open to run it.
此时终端无响应。
我相信 minikube 服务 SERVICENAME 应该尝试启动一个服务,return 那个文本块。我也相信 --url 后缀应该只是 returns URL 列中的内容,并跳过启动服务。
关于如何在 Mac 上获得我想要的结果的任何好的解释?
顺便说一句,一旦终端会话显示“因为...”,我该如何恢复对它的控制?
谢谢,
杰罗姆。
2020 年 8 月 14 日更新:
我采纳了 Saravanan 的建议。我从我的 Mac 中卸载了 Docker 并使用自制程序安装 docker + docker-machine + virtualbox(参见 https://www.robinwieruch.de/docker-macos)。当我 运行 "minikube service mysql-svc --url" 我不再遇到隧道问题。谢谢你,Saravanan。
我的问题已经演变成从 Docker Hub 获取正确版本的容器(编译的应用程序,然后 运行 到 docker 构建)。 YAML 文件在我的帐户中有指向那里,但恐怕我有一个过时的版本。我该怎么做才能在我的 Mac 上覆盖我的当前版本,或者删除 Docker 容器以便 kubectl create 可以获得更新的版本?
这是因为您的 minikube 映像 运行 在容器中。 尝试在虚拟框中将配置更改为 运行。然后你可以在没有隧道的情况下到达你的 sql pod。
# first delete the existing minikube image
$ minikube delete
# change the minikube driver to virtualbox
$ minikube config set vm-driver virtualbox
# start minikube again
$ minikube start
Ensure you have virtual box installed before proceeding