无法访问Docker驱动程序Windows 10上的Minikube(v1.18.1)入口

无法访问Docker驱动程序Windows 10上的Minikube(v1.18.1)入口,docker,kubernetes,minikube,nginx-ingress,tunnel,Docker,Kubernetes,Minikube,Nginx Ingress,Tunnel,我的问题和你的完全一样。但请再次回答这个问题,以供参考: 我面临的问题是,我无法使用浏览器的IP访问Minikube入口。我已在Windows 10 Home上安装了Minikube,并使用docker驱动程序启动Minikube(Minikube start--driver=docker) 系统信息: Windows 10主页 Minikube(v1.18.1) Docker(minikube的驱动程序)-Docker 发动机版本20.10.5 我遵循这份正式文件: 首先,我在Minikube

我的问题和你的完全一样。但请再次回答这个问题,以供参考:

我面临的问题是,我无法使用浏览器的IP访问Minikube入口。我已在Windows 10 Home上安装了Minikube,并使用docker驱动程序启动Minikube(
Minikube start--driver=docker

系统信息:

Windows 10主页

Minikube(v1.18.1)

Docker(minikube的驱动程序)-Docker 发动机版本20.10.5

我遵循这份正式文件:

首先,我在Minikube上运行下面的命令来创建部署

kubectl创建部署网站--image=gcr.io/google samples/hello app:1.0

已创建部署,可在下图中看到:在此处输入图像描述

接下来,我公开了我在上面创建的部署。为此,我运行了下面的命令

kubectl公开部署web--type=NodePort--port=8080

这创建了一个可通过运行以下命令查看的服务:

kubectl获取服务网站
该服务的屏幕截图如下所示:

  • 我现在可以通过运行以下命令在浏览器上访问服务:
  • minikube服务网站

    在下面的屏幕截图中,您可以看到我可以在浏览器上查看它

  • 接下来,我通过运行以下命令创建了入口:
  • kubectl应用-fhttps://k8s.io/examples/service/networking/example-ingress.yaml

    将创建入口,我可以通过运行以下命令进行验证:

    kubectl进入
    下面给出了此操作的屏幕截图:

    入口ip列为192.168.49.2。这意味着如果我在浏览器中打开它,它应该会打开,但不幸的是不会。显示无法访问该站点。请参见下面的屏幕截图

    问题是什么。请给我一个解决方案

    我还添加了etc\hosts文件上的映射

    192.168.49.2 hello world.info

    然后我还尝试在浏览器上打开hello-world.info,但没有成功

    在下图中,我对hello-world.info进行了ping,它的IP地址是192.168.49.2。这表明etc\hosts映射是正确的:

    我还对minikube ip和hello-world.info进行了卷曲,两者都得到了超时。见下图:

    kubectl描述服务网站提供了以下详细信息:

    Name:                     web
    Namespace:                default
    Labels:                   app=web
    Annotations:              <none>
    Selector:                 app=web
    Type:                     NodePort
    IP:                       10.100.184.92
    Port:                     <unset>  8080/TCP
    TargetPort:               8080/TCP
    NodePort:                 <unset>  31880/TCP
    Endpoints:                172.17.0.4:8080
    Session Affinity:         None
    External Traffic Policy:  Cluster
    Events:                   <none>
    
    按照以下说明(如评论中所述),该问题似乎已在那里得到解决

    一旦你设置了入口并进行了必要的更改,我想你就进入了 运行minikube的windows powershell对吗?确保你 “启用插件入口”,并有一个运行“minikube”的独立控制台 还有隧道。另外,将主机名和ip地址添加到windows的 主机表。然后在powershell中键入'minikue ssh',它将为您提供 命令行。然后你可以“curl myapp.com”,然后你应该 回复如预期

    然而,在我的例子中,在发出
    minikube tunnel
    命令时,minikube隧道没有响应。


    即使通过
    minikubesh
    ,我也无法
    curl hello world.info
    。请帮忙
    在Windows上

    经过一段相当长的时间后,我得出结论,ingress与Docker在Windows10 Home上的工作存在一些冲突。如果我们想公开NodePort类型的服务,那么一切都很顺利,但是入口很麻烦

    此外,我尝试在Windows10中用Ubuntu设置WSL2,但没有成功

    最后,在Windows10 Home上进入Minikube时,以下各项起到了作用:

    • 安装
    • 取消选中
      控制面板->程序->打开和关闭Windows功能(在程序和功能下)
      中的虚拟机平台Windows虚拟机监控程序平台选项,然后单击确定。如果提示重新启动计算机,请重新启动计算机
    • 现在,在新cmd中执行以下命令
    如果
    minikube启动--driver=virtualbox
    不起作用,则使用
    minikube启动--driver=virtualbox--no-vtx检查

    这个过程解决了我的问题,ingress在我的Windows 10 Home Minikube上运行良好

    Ubuntu上的

    最后,Ubuntu上的Docker本质上是无缝支持Minikube入口,没有任何故障

    Name:             example-ingress
    Namespace:        default
    Address:          192.168.49.2
    Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
    Rules:
      Host              Path  Backends
      ----              ----  --------
      hello-world.info
                        /   web:8080   172.17.0.4:8080)
    Annotations:        nginx.ingress.kubernetes.io/rewrite-target: /$1
    Events:             <none>
    
    minikube delete
    minikube start --driver=virtualbox