zsh - 当 Mac 上的 minikube 被要求提供 URL 时,为什么它会在隧道中启动服务?

标签 zsh minikube macos-catalina

我在我的 Mac (Catalina) 中安装了最新的 Docker、Minikube 和 kubectl。我还有一个最近的 MySQL,命令行正确安装在 PATH 中。我正在使用股票终端(zsh)。
Docker 启动得很好,告诉我它已安装的 pod。
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 service mysql-svc --url 时,我希望得到一个 URL,就像另一台机器上的 URL:http://192.168.99.101:31067 .相反,我看到了一些关于在“隧道”中启动服务的信息:
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 应该尝试启动服务,并返回该文本块。我也相信 --url 后缀应该只返回 URL 列中的内容,并跳过启动服务。
关于如何在 Mac 上获得我想要的结果有什么好的解释吗?
顺便说一句,一旦终端 session 指出“因为......”,我该如何恢复对它的控制?
谢谢,
杰罗姆。
2020 年 8 月 14 日更新:
我接受了 Saravanan 的建议。我从我的 Mac 上卸载了 Docker 并使用自制软件来安装 docker + docker-machine + virtualbox(参见 https://www.robinwieruch.de/docker-macos)。当我运行“minikube service mysql-svc --url”时,我不再遇到隧道问题。谢谢你,萨拉瓦南。
我的问题已经演变为从 Docker Hub 获取正确版本的容器(编译的应用程序,然后通过 docker build 运行)。 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

关于zsh - 当 Mac 上的 minikube 被要求提供 URL 时,为什么它会在隧道中启动服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63283823/

相关文章:

zsh agnoster 主题 chagne prompt/ps1

vim - tmux:如何在光标下打开文件

在入口中提供路径时无法访问 Kubernetes 仪表板

kubernetes - helm 升级时缺少图表元数据 (Chart.yaml)

macos - 由于 MacOS Catalina beta 更新,Vagrant 无法安装 NFS

ffmpeg - 我们指定使用 ffmpeg 的 Mozilla、MacOS 和 Safari 版本有什么区别?

terminal - 当我尝试安装 Homebrew 时,为什么终端提示要求输入密码?

autocomplete - zsh 自动完成 anaconda 环境

path - 设置 zsh PATH 不产生所需的顺序

minikube - `minikube cache list` 和 `minikube image list` 有什么区别