簡體   English   中英

何時在 K8s 中使用外部 LoadBalancer?

[英]When to use external LoadBalancer in K8s?

解釋我的困惑/缺乏理解

當閱讀K8s 中的外部 LoadBalancer 時,這是一個雲提供商獨有的功能,我不太明白什么時候應該使用它,因為當創建一個部署時,K8s 將在該部署中的 Pod 上進行循環負載平衡。

因此,根據我目前的理解,所有需要做的就是制作一個 NodeIP,並且您擁有相當於外部負載均衡器的功能?

或者我應該將 LoadBalancer 類型視為 haproxy/nginx/Envoy,在那里可以做 SSL、反向代理和許多其他有用的事情?

我目前的猜測是 LoadBalancer 的正確使用是添加許多 NodeIP,但我找不到任何支持它的東西。

問題

誰能解釋何時以及為什么使用 LoadBalancer 而不僅僅是使用 NodeIP?

例如,您想在集群中部署多個應用程序,例如 10 個應用程序。 您想通過互聯網訪問這 10 個應用程序。 一種方法是將這 10 個應用程序服務設置為節點端口,以便您可以從外部訪問它們。 為此,kubernetes 在每個集群節點上打開 10 個節點端口。 這是一個安全風險。

在大多數企業中,他們在封閉網絡中的防火牆后面工作,不允許外部流量進出 http/https (80/443) 以外的任何端口。

一種方法是將服務類型設置為每個應用程序服務的負載均衡器。 因此,要訪問 10 個應用程序,您將配置 10 個負載均衡器以通過 http/https 端口訪問應用程序服務器。 由於負載均衡器是對資源收費的,因此從經濟上講,為要通過 itnernet 訪問的每項服務使用一個負載均衡器是不可行的。

有沒有辦法通過單端口訪問在 kubernetes 中運行的所有這 10 個應用程序服務。 這就是入口 controller 出現的地方。

Ingress controller 允許單個 ip-port 通過 ingress 規則訪問在 k8s 中運行的所有服務。 入口 controller 服務設置為負載均衡器,因此可以從公共互聯網訪問

暫無
暫無

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

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