簡體   English   中英

GKE 集群 - 我可以將流量從全局 http 負載均衡器定向到 nginx 入口控制器嗎

[英]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.

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