[英]Global load balancer (HTTPS Loadbalancer) in front of GKE Nginx Ingress Controller
[英]GKE cluster - can I direct traffic from global http load balancer to nginx ingress controller
我正在使用 GKE,並且在集群上安裝了nginx 入口控制器。 GCP 自動創建了一個TCP 負載均衡器,將請求從外部臨時 IP 重定向到我的集群節點 (nginx)。
我在 VM 上部署了另一個 Web 應用程序,我想通過 VM 和 gke 集群之間的子域平衡傳入請求。 為此,我創建了一個具有 2 個后端以及主機和路徑規則的全局負載均衡器。
我將 DNS 記錄 A 配置為指向全局負載均衡器。
我可以從我的域訪問 VM,但無法訪問 GKE 上安裝的入口。
我嘗試將 gke-backend 配置為實例組(節點池)和指向 TCP 負載均衡器的 Internet 網絡端點組。 但沒有成功:-(
如何在 GCP 中平衡 VM 和 GKE 集群?
我建議您檢查全局 LB 上的日志,以了解目的地是您的 GKE 集群的數據包發生了什么,有關更多信息,請參閱此。 如果可能,請分享任何錯誤或警告。
這樣我們就可以更好地了解正在發生的事情。
通常不會這樣做。 首先,您不能讓 HTTP(S) 負載平衡器以網絡負載平衡器為目標。 LB 必須指向由網絡端點組或實例組組成的后端服務。
實現此目的的唯一方法是使用包含所有當前節點的非托管實例組。 然后,您可以將非托管實例組作為后端服務添加到您的 HTTP(S) LB,將 Nginx Ingress nodePort 指定為后端端口。
上述問題是,當任何集群節點發生變化(擴展、縮減或因升級而被替換)時,非托管實例組不會自動更新新節點。 您需要手動使組保持最新。
我通過使用 2 個靜態 IP 和 2 個 DNS A 記錄解決了我的問題,第一個 (*.mydomain) 以 k8s 集群為目標,第二個 (service.mydomain) 以我的 VM 為目標。
這是我剛剛提出的快速解決方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.