簡體   English   中英

Helm chart nginx-ingress 在 minikube 中不起作用?

[英]Helm chart nginx-ingress not working in minikube?

我已經按照教程中的說明在 Minikube 上設置了一個“hello world”入口。 唯一的區別 - 我刪除了特定的主機名以使用 '*' 代替。 但是,它似乎只適用於 minikube 提供的入口控制器( minikube addons enable ingress )。 當我嘗試禁用它並改用helm install nginx-ingress stable/nginx-ingress ,我無法再訪問 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

是否可以安裝以在 minikube 上正確使用此舵圖?

我禁用了入口插件並使用您提到的舵圖安裝了 nginx 入口。 我測試了它並為您提供了解決方案。

當你運行時:

$ 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

請注意 EXTERNAL-IP 處於掛起狀態。

minikube 不會自行分配此 IP,您需要手動分配。

運行kubectl edit svc nginx-ingress-controller並在spec:下添加externalIPs字段spec:如下所示:

spec:
  externalIPs:
  - 192.168.39.241 # minikube ip

現在讓我們看看為什么會這樣。 通常,在創建 LoadBalancer 類型的服務時,在雲環境中運行 kubernetes 時,雲控制器會創建一個負載均衡器並更新服務的 IP,但是由於您在 minikube 上運行它,而沒有雲特定功能正在工作,因此您需要添加地址手動。

這可以通過與您的集群相關聯的任何接口的任何 IP 進行,因此當有更多節點時它也應該工作。 您可以添加節點的任何接口的 IP,kuberentes 將在此接口上綁定端口,從現在開始您可以向其發送流量,並將其轉發到適當的服務/pod。

讓我知道它很有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM