【问题标题】:Minikube ingress not working in Windows 10 professionalMinikube 入口在 Windows 10 专业版中不起作用
【发布时间】:2022-01-02 15:20:12
【问题描述】:

我正在尝试在 Minikube 中运行/设置入口。但它没有发生。以下是步骤 环境:

  • Windows 10 专业版
  • minikube 版本:v1.24.0

已启用入口:

|入口 |迷你库 |启用✅ |未知(第三方) |
|入口-dns |迷你库 |启用✅ |未知(第三方)|


创建部署

    $ kubectl get deployment

NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/web   1/1     1            1           9s

公开服务

kubectl expose deployment web --type=NodePort --port=8080

$ kubectl get svc
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP          38h
web          NodePort    10.103.21.35   <none>        8080:30945/TCP   3m22s

启动服务

minikube service web

Browser url: http://127.0.0.1:59188/

Browser content: 
Hello, world!
Version: 1.0.0
Hostname: web-79d88c97d6-c79mp

创建入口:

$ kubectl apply -f https://k8s.io/examples/service/networking/example-ingress.yaml
ingress.networking.k8s.io/example-ingress unchanged


$ kubectl get ingress
NAME              CLASS   HOSTS              ADDRESS     PORTS   AGE
example-ingress   nginx   hello-world.info   localhost   80      14h

添加地图主机:

> in /etc/hosts
> 127.0.0.1 hello-world.info and in windows/system32/etc/hosts 
> 127.0.0.1 hello-world.info

运行 curl 命令:(从一个新的 git bash 我执行以下命令)

$ curl hello-world.info
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0
curl: (7) Failed to connect to hello-world.info port 80: Connection refused

在浏览器中:

    URL: http://hello-world.info/
    Browser content: This site can't be reached 
hello-world.info refused to connect.

不知道为什么我会失败。在此处请求帮助。

【问题讨论】:

    标签: kubernetes kubernetes-ingress minikube


    【解决方案1】:

    您可以在下面获取您的 minikube 集群 ip 并继续。

    minikube ip

    将此 ip 添加到 /etc/hosts

    【讨论】:

    • 在 /etc/hosts 和 C:\Windows\System32\drivers\etc\hosts 中添加了 minikube ip 并在新窗口中进行了 curl 结果是“curl: (28) 无法连接到 hello- world.info 端口 80:超时”
    • 您是否清理了旧的本地主机条目。还要检查您是否能够通过 nodeport 访问您的应用程序
    【解决方案2】:

    在测试各种场景后,我认为这里有两个问题。

    1. 当前最新的 minikube v1.24.0 存在问题,它与 minikube ingress 插件混淆,并使 ingress 的地址为 localhost 而不是与 minikube ip 相同
    2. docker 驱动程序出现问题,导致无法通过 curl 和浏览器访问 minikube ip

    为了解决这两个问题,我将 minikube 降级到之前的版本 v1.23.2,然后使用 HyperV 驱动程序,之后 Kubernetes 网站上的示例和教程开始按预期工作。


    以下是我采取的完整步骤:

    为了安全起见,在降级之前删除使用 v1.24.0 和相同版本启动的任何以前的 minikube 实例

    minikube delete
    

    下载 minikube 可执行文件并将其替换为 v1.23.2

    检查您是否正确替换了可执行文件

    minikube version
    

    打开或关闭 Windows 功能

    中打开 HyperV

    重启电脑

    创建一个新的 minikube 实例,但这次使用 HyperV

    minikube start --driver=hyperv
    

    在 minikube 中启用入口插件

    minikube addons enable ingress
    

    将所有部署、服务和入口部署到这个新实例。

    等待一分钟左右,直到为入口分配地址。一旦它在那里,更新主机文件并将域路由到地址。

    现在通过 curl 和/或浏览器检查地址和域,看看问题是否已解决。

    【讨论】:

      【解决方案3】:

      我也在 Windows 上使用 minikube v1.24。 输入命令后

      minikube tunnel

      浏览网址:http://hello-world.info/可以返回正确的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-23
        • 1970-01-01
        • 1970-01-01
        • 2020-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多