[英]Is it double load-balancing when using MetalLB and a ClusterIP service?
我使用 MetalLB 和 Nginx-ingress controller 來提供對我的應用程序的 inte.net 訪問。 我看到在大多數配置中,服務設置為 ClusterIP,因為入口將向那里發送流量。
我的問題是:這是否會導致雙負載平衡,即一個從 MetalLB 到我的入口,另一個從我的入口通過 ClusterIP 到 Pod?
如果是這樣,這是應該的方式,還是有更好的方法?
Metallb 不接收和轉發任何流量,因此
從 MetalLB 到我的入口
真的沒有意義。 Metallb 只是使用外部 ip 配置 kube.netes 服務,並告訴您周圍的基礎設施在哪里可以找到它。 仍然使用您的設置會有雙重負載平衡:
流量到達您的集群並在您的 nginx pod 之間進行負載平衡。 Nginx 處理請求並將其轉發給應用程序,這將導致第二次負載平衡。
但這完全有道理,因為如果您使用入口控制器,您不希望所有傳入流量都通過同一個 pod 到 go。
可以將入口控制器與 metallb 一起使用,並且可以在對您的應用程序執行更新時提高穩定性,但這不是必需的。
Metallb 是一種解決方案,用於在沒有雲提供商為您執行此操作時實現LoadBalancing
類型的 kube.netes 服務。
因此,如果您不需要第 7 層負載平衡機制,您可以不使用帶有入口控制器的ClusterIP
類型的服務,而只需使用類型為LoadBalancing
的服務。 Metallb 將從您的池中為該服務提供外部 ip 並向其同行宣布。
在這種情況下,當流量到達集群時,它只會被負載均衡一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.