![](/img/trans.png)
[英]Is the 'autoscaling' setting for the nginx-ingress helm chart working?
[英]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.