【问题标题】:minikube on WSL2 (windows 10) - minikube ip not reachableWSL2(Windows 10)上的 minikube - minikube ip 无法访问
【发布时间】:2023-03-09 15:02:01
【问题描述】:

我已在本地计算机上安装了 minikube 实例 (--driver=docker)。 minikube ip 为 192.168.49.2。当我启动 minikube (minikube start --memory 7168) 时,控制台上没有任何错误。但尝试 ping minikube ip 失败。我做错了什么?

$ kubectl get nodes -o wide
NAME       STATUS   ROLES                  AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION                   CONTAINER-RUNTIME
minikube   Ready    control-plane,master   9d    v1.20.2   192.168.49.2   <none>        Ubuntu 20.04.1 LTS   5.4.72-microsoft-standard-WSL2   docker://20.10.3

【问题讨论】:

  • 创建另一个终端标签并执行以下命令minikube tunnel...然后尝试ping minikube

标签: java docker kubernetes minikube


【解决方案1】:

回想一下,minikube 是本地 Kubernetes - 它在您的个人计算机上运行一个单节点 Kubernetes 集群,以便您可以试用 Kubernetes。现在,它不再在本地机器中运行 Kubernetes 集群,而是在 VM 中运行它。

这就是为什么您不能简单地从本地访问节点 IP。另一种看待它的方式是,在 Kubernetes 中,您可以创建 NodePort 服务来访问集群外部的工作负载,但这在您使用 minikube 运行 Kubernetes 时不起作用 - 原因与上述相同。

现在,您可以使用minikube service &lt;&lt;YOUR_SERVICE_NAME&gt;&gt; 命令解决这个问题。这将创建一个隧道来从 K8S 集群外部访问您的应用程序(使用服务公开)。


您可以尝试@Hackerman 提到的minikube tunnel,但我从未尝试过。

【讨论】:

  • hagrawal,我尝试使用命令 minikube service calendar-ui 应用解决方法,其中 calendar-ui 是我与 pod - 前端应用程序连接的服务,但我获得的唯一结果是弹出浏览器窗口,显示消息“不”找到,nginx/1.18.0' 和 url '127.0.0.1:55614'。我试图使用“127.0.0.1:55614/calendar”访问该应用程序,但没有成功
  • @MirosławHaręza 不要在 IE 中访问它,在 Chrome 中访问它。如果仍然无法正常工作,请确保您没有任何客户端代理。
  • 我在 Firefox 中访问过
  • minikube service &lt;&lt;name&gt;&gt; 为我工作!谢谢。这应该被接受为正确答案
【解决方案2】:

只是在上一个答案的基础上添加一点。存在 docker bridge 限制,无法使用route the traffic to Linux containers。这就是为什么 minikube 隧道和服务被实施为解决方法的原因。

minikube tunnel 作为进程运行,在 使用集群的 IP 地址到集群的服务 CIDR 的主机 作为网关。隧道命令将外部 IP 直接暴露给 在主机操作系统上运行的任何程序。

您可能会觉得有趣的另一种方法是使用在#9761 拉取请求中启用的入口:

.\minikube-windows-amd64.exe addons enable ingress                                                                                           I1121 00:59:39.443965    3000 translate.go:89] Failed to load translation file for en: Asset translations/en.json not found
* After the addon is enabled, please run "minikube tunnel" and your ingress resources would be available at "127.0.0.1"
* Verifying ingress addon...
* The 'ingress' addon is enabled

【讨论】:

  • 我已经执行了这个 minikube tunnel 命令来运行 minikube 实例,但它没有帮助。我尝试在 minikube ip (192.168.49.2) 上运行这两个应用程序,就像在 localhost 上一样。 Ping 也不起作用。您写道,隧道暴露了外部 ip,在我的情况下,我怀疑存在无法访问的内部 ip(但我不确定,我是这个主题的新手)。我也试过运行这个插件,但是运行它时会发生超时。
【解决方案3】:

在您的 Windows 系统上,创建由初始“minikube start”创建的容器后,您可以通过键入“docker ps”查看“minikube 实例”。这是在这个容器中运行的 minikube 'master' 节点。

看起来像这样:

CONTAINER ID   IMAGE                                 COMMAND                  CREATED       STATUS             PORTS                                                                                                                                  NAMES
6293ca0ba5b0   gcr.io/k8s-minikube/kicbase:v0.0.25   "/usr/local/bin/entr…"   2 hours ago   Up About an hour   127.0.0.1:59539->22/tcp, 127.0.0.1:59540->2376/tcp, 127.0.0.1:59537->5000/tcp, 127.0.0.1:59538->8443/tcp, 127.0.0.1:59536->32443/tcp   minikube

在 PORTS 列中,您将看到通过 minikube 启动 docker 容器的方式转发的端口。您可以看到这些类型的转发由 docker 处理,与您可能执行“docker run -p port:port”的任何包含相同

请注意,此列表中的第一个转发端口是 ssh 端口:“127.0.0.1:59539->22/tcp”。

当您执行“minikube 隧道”时,如果您在列设置中启用命令行显示,minikube 将打开您可以在 Windows 任务管理器中看到的 ssh.exe 实例。

那些“隧道”看起来像这样:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -N docker@127.0.0.1 -p 59539 -i C:\Users\steve.sims\.minikube\machines\minikube\id_rsa "-L 8080:10.102.174.166:8080"

如果我将该命令拆开并仅从命令提示符运行:

ssh docker@127.0.0.1 -p 59539 -i C:\users\steve.sims\.minikube\machines\minikube\id_rsa

然后我在 minikube VM(或节点)中获得一个交互式远程窗口。输入 'ifconfig eth0' 我得到:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.49.2  netmask 255.255.255.0  broadcast 192.168.49.255

所以,确实我的 minikube ip 192.168.49.2,但它是上面提到的人的内部地址。

除此之外,ssh 上的 -N 参数表示“无命令”,最后的 -L 是 port-to-forward:destination-socket 格式的端口转发标志。当然,所有的隧道都经过了最初的 docker -p port:port forward minikube 在容器启动时建立的端口。

如果有用,您可以通过脚本从该行的格式创建自己的 ssh 实例,它们也可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-29
    • 2021-11-29
    • 1970-01-01
    • 2021-08-03
    • 2020-11-18
    • 1970-01-01
    • 2020-10-04
    • 2020-05-28
    相关资源
    最近更新 更多