Kubernetes 掌舵图nginx ingress不在minikube工作?

Kubernetes 掌舵图nginx ingress不在minikube工作?,kubernetes,minikube,nginx-ingress,Kubernetes,Minikube,Nginx Ingress,我已经在Minikube上设置了一个“hello world”入口,如中所述。唯一的区别是,我删除了特定的主机名,改为使用“*”。但是,它似乎只适用于minikube提供的入口控制器(minikube插件启用入口)。当我尝试禁用它并使用helm install nginx ingres stable/nginx ingres时,我无法再访问Hello World示例网站。我收到一个“连接被拒绝”错误: $ kubectl get ingress NAME HOSTS

我已经在Minikube上设置了一个“hello world”入口,如中所述。唯一的区别是,我删除了特定的主机名,改为使用“*”。但是,它似乎只适用于minikube提供的入口控制器(
minikube插件启用入口)。当我尝试禁用它并使用
helm install nginx ingres stable/nginx ingres
时,我无法再访问Hello World示例网站。我收到一个“连接被拒绝”错误:

$ kubectl get ingress
NAME              HOSTS   ADDRESS        PORTS   AGE
example-ingress   *       192.168.64.6   80      6m23s

$ minikube ip
192.168.64.6

$ curl -iv "192.168.64.6"
* Rebuilt URL to: 192.168.64.6/
* Hostname was NOT found in DNS cache
*   Trying 192.168.64.6...
* connect to 192.168.64.6 port 80 failed: Connection refused
* Failed to connect to 192.168.64.6 port 80: Connection refused
* Closing connection 0
curl: (7) Failed to connect to 192.168.64.6 port 80: Connection refused
如果我切换回内置插件,它会再次工作:

$ helm uninstall nginx-ingress
release "nginx-ingress" uninstalled

$ minikube addons enable ingress
✅  ingress was successfully enabled

$ curl -iv "192.168.64.6"
* Rebuilt URL to: 192.168.64.6/
* Hostname was NOT found in DNS cache
*   Trying 192.168.64.6...
* Connected to 192.168.64.6 (192.168.64.6) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.38.0
> Host: 192.168.64.6
> Accept: */*
> 
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
* Server openresty/1.15.8.2 is not blacklisted
< Server: openresty/1.15.8.2
Server: openresty/1.15.8.2
< Date: Sun, 09 Feb 2020 07:06:58 GMT
Date: Sun, 09 Feb 2020 07:06:58 GMT
< Content-Type: text/plain; charset=utf-8
Content-Type: text/plain; charset=utf-8
< Content-Length: 59
Content-Length: 59
< Connection: keep-alive
Connection: keep-alive

< 
Hello, world!
Version: 1.0.0
Hostname: web-9bbd7b488-wsvsw
* Connection #0 to host 192.168.64.6 left intact
$helm卸载nginx入口
卸载“nginx入口”版本
$minikube插件支持入口
✅  已成功启用入口
$curl-iv“192.168.64.6”
*重新生成的URL:192.168.64.6/
*在DNS缓存中找不到主机名
*正在尝试192.168.64.6。。。
*连接到192.168.64.6(192.168.64.6)端口80(#0)
>GET/HTTP/1.1
>用户代理:curl/7.38.0
>主机:192.168.64.6
>接受:*/*
> 

是否可以在minikube上安装并正确使用此头盔图表?

我禁用了ingress插件,并使用您提到的头盔图表安装了nginx ingress。我对它进行了测试,并为您提供了解决方案

运行时:

$ kubectl get services nginx-ingress-controller
您应该看到以下输出:

NAME                       TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
nginx-ingress-controller   LoadBalancer   10.96.245.213   <pending>     80:30240/TCP,443:31224/TCP   50s
现在让我们看看为什么这样做。 通常情况下,在云环境中运行kubernetes时,在创建LoadBalancer类型的服务时,云控制器会创建一个负载平衡器并更新服务的IP,但由于您在minikube上运行它,并且没有云特定的功能,您需要手动添加地址

这可以通过与集群相关联的任何接口的任何IP来实现,因此当有更多节点时,它也应该可以工作。您可以添加节点的任何接口的IP,kuberentes将绑定此接口上的端口,从现在起,您可以向其发送流量,并将其转发到相应的服务/pod


让我知道这很有帮助。

你能解决这个问题吗?
spec:
  externalIPs:
  - 192.168.39.241 # minikube ip