啟用 DNS 全域性負載均衡

GSLB(全球伺服器負載均衡)是一種基於 DNS 的流量分發功能,能夠智慧地在多個伺服器叢集之間分配流量。GSLB 結合了伺服器可用性、距離、系統負載、RPS(每秒請求數)和連線數等指標,透過 DNS 響應將使用者請求引導到最合適的伺服器上。

要啟用 DNS > Global Server Load Balancing,需要配置以下引數:

全域性配置

  • Plan update interval:全域性負載均衡計劃的更新間隔。
  • Max number of DNS results:限制 DNS 解析記錄的數量,如果返回的解析記錄超過限制,將不返回超出限制的解析記錄。

節點配置

  • Low Watermark:當節點的指標超過低水位時,按照機率將流量分發到其他節點。
  • High Watermark:當節點的指標超過高水位時,不再將流量分發到該節點。
  • Metric:負載均衡參考指標(如果不選擇指標,則按照 DNS 配置進行應答,不進行智慧重分發)。
    • load_1m:當前節點 1 分鐘內的負載均值。例如,對於 4 核系統,低水位為 1,高水位為 4。
    • load_5m:當前節點 5 分鐘內的負載均值。例如,對於 4 核系統,低水位為 1,高水位為 4。
    • load_15m:當前節點 15 分鐘內的負載均值。例如,對於 4 核系統,低水位為 1,高水位為 4。
    • rps:當前節點每秒處理的請求數。例如,最大 RPS 為 1000 的系統,低水位為 100,高水位為 1000。
    • active_conns:當前節點的活躍連線數。例如,最大活躍連線數為 10000 的系統,低水位為 1000,高水位為 10000。

以上配置完成後,Admin 就會根據實際節點指標按照更新間隔定時生成負載均衡計劃並下發到各個節點,生成的計劃可以在計劃列表中檢視。

檢視負載均衡計劃

全域性負載均衡計劃生成後,可以在計劃列表中看到這些圖表。

Total Traffic Distribution 顯示各叢集網路流量(入口和出口流量)的分佈圖。

左側包含兩類圖表:

Traffic Distribution 展示了各叢集節點的真實流量分佈圖。

Original DNS Plan 展示了不開啟全域性負載均衡,僅按照 DNS 解析結果進行負載均衡的流量分佈圖。

右側的 GSLB Plan 顯示生成的負載均衡流量分佈圖。

如果與左側圖表的叢集節點流量分佈有差異,箭頭顏色將顯示為紅色或綠色,分別代表減少該節點的流量流入和增加節點的流量流入。 單擊 Previous PlanNext Plan 可以檢視之前的計劃歷史。

示例

下面以我們 mini-CDN 的北京叢集為例,未配置節點指標之前,兩個節點的流量分佈是相似的。

假設北京節點 2 (127.0.0.3) 的配置較低,只能處理少量請求。以每秒請求數 (RPS) 作為節點的參考指標,我們將北京節點 2 的高水位配置調整為一個較低的數值。

等待計劃更新,一段時間後我們可以觀察到負載均衡已經生效。第二個節點的流量開始下降,大部分請求會被分發到北京節點 1 (127.0.0.2),而部分請求也會被分發到杭州節點 (127.0.0.1)。

我們配置一條 DNS 記錄:www.test.com,將其解析為北京的閘道器叢集。

使用 dig 命令向指定 Node 節點連續請求 www.test.com 1000 次,可以看到解析的分佈結果與全域性負載均衡計劃中的結果是近似的。

$ for i in {1..1000}; do dig www.test.com @127.0.0.1 +short; done | sort  | uniq -c
    168 127.0.0.1
    832 127.0.0.2