Load Balancer
負載平衡器,用在設備資源分配負載,以達到最佳化資源使用且避免過載為目的。
*建議不清楚Load Balancer
,可使用Nginx
實作一個Docker
的Load Balancer
,連線到不同的設備,再使用雲端工具。
GCP - Load Balancer
產品名稱為 Load Balancing
Load Balancing 項目
- HTTP/HTTPS - 外部入口僅 80/8080/443 port 可使用 (Layer 7 - 應用層)
- TCP - 外部入口 不限 port 可使用 (Layer 4 - 傳輸層)
- UDP - 外部入口 不限 port 可使用 (Layer 4 - 傳輸層)
*依據項目挑選需求所用的Load Balancing
情境思考選用
- 跨
Load Balancer
連線需求? - 外部入口除了 80/8080/443 ,測試連線 ex: socket連線
HTTP/HTTPS
Step1 選擇類型需求
Step2 Backend configuration - 後端設定
後端服務
- GCE - 個體群組(Instance group) - 由
GCP內網
傳送 - GCP - Storage - 由
GCP內網
傳送 - GCE - 網路端點群組(NEG - Network Endpoint Groups) - 類似
K8s Pods
- Zonal NEGs - 地區NEGs
- Internet NEGs - 網路NEGs
- Cloud CDN
- Google Cloud Armor
- Identity-Aware Proxy
- User Header
- GCE - 個體群組(Instance group) - 由
也可以將後端綁定 Cloud CDN
Step3 Host and path rules - 主機與路徑規則
- 簡易主機與路徑規則
設定完後端會自然的預設後端 - 進階主機與路徑規則 (網址重新導向與重新編寫)
*重新轉導回應代碼重點提醒:
302
有些瀏覽器可能會將POST
request 轉成GET
往新的 location 發送。307
不管帶什麼方法(POST
/GET
… ),重定向之後都要用相同方法。
Step4 Frontend configuration - 前端設定
- 入口設定,選擇 HTTP/HTTPS
HTTP
- 申請方式比較簡單,建立之後即可應用。HTTPS
- 要申請憑證與建立一組IP位置,申請完建立完的Load Balancing,生效後即可由HTTPS
方式進網站。
後續就是將網址,指定到服務上在 Cloud DNS
將服務新增A 紀錄
,使用網址訪問。
TCP/UDP
HTTP/HTTPS
多個自定主機與路由規則,但port
號限制在80/8080/443
,TCP
可自由自定義port
號。
小結
Load Balancing
跨足了很多GCP的雲端項目,是一個複雜的一個服務,這邊的前端指的就是入口,K8s
的Ingress
就是在做Load Balancer
的角色,K8s
的Ingress
有很多限制的功能,可以在Load Balancing
指定到K8s
的Ingress
可再做一層封包的過濾。