您可以為私人區域中的資源記錄集設定 DNS 路由政策,根據特定條件導引流量。如要設定這類政策,您需建立具有特定路由政策值的資源記錄集。這些值會決定 Cloud DNS 如何轉送查詢流量。
Cloud DNS 支援下列路由政策:
加權 round robin (WRR) 路由政策:使用 WRR 路由政策,為 DNS 名稱的每個資源記錄集指派不同權重。WRR 路由政策可確保流量是根據設定的權重分配。
- 容錯移轉路由政策:使用容錯移轉路由政策,進行主動備份的設定。
下列私人區域無法設定 DNS 路由政策:
- 轉送區域
- DNS 對接區域
- 代管反向查詢區
- Service Directory 區域
WRR 路由政策
WRR 路由政策可用來為每個 DNS 目標指定不同權重,Cloud DNS 會確保流量根據權重分配。您可以使用這項政策支援手動 active-active 或 active-passive 設定,也可以將流量拆分給服務的正式和實驗版本。
Cloud DNS 可在內部負載平衡器和外部端點的路由政策中,支援健康狀態檢查和容錯移轉。如果端點未通過健康狀態檢查,Cloud DNS 會自動執行容錯移轉。容錯移轉期間,Cloud DNS 會自動調整其餘健康狀態良好端點之間的流量分配。詳情請參閱「健康狀態檢查」。
容錯移轉路由政策
容錯移轉路由政策可用來進行主動備份的設定,為虛擬私有雲網路中的內部資源提供高可用性。
正常運作下,Cloud DNS 一律會從 active 集合傳回 IP 位址。當 active 集合中所有 IP 位址都變成健康狀態不良時,Cloud DNS 會提供 backup 集合中的 IP 位址。
Cloud DNS 可讓您將「微量」流量逐步導入備份 VIP 位址,驗證備份 VIP 位址是否正常運作。您可以設定傳送至備份的流量比例,設定的值須為介於 0 到 1 之間的分數。您也能將所有流量傳送至備用 VIP 位址,手動觸發容錯移轉。一般值為 0.1。健康狀態檢查只能套用至內部負載平衡器和外部端點。
健康狀態檢查
Cloud DNS 可在下列內部負載平衡器和外部端點的路由政策中,支援健康狀態檢查和容錯移轉:
- 內部應用程式負載平衡器 (區域和跨區域)
- 內部直通式網路負載平衡器
- 內部 Proxy 網路負載平衡器 (預先發布版)
- 外部端點
如要搭配代管區域使用健康狀態檢查,且已啟用 DNS 安全性擴充功能 (DNSSEC),每個政策項目內只能使用單一 IP 位址。在特定政策中,您無法混合使用已接受與未接受健康狀態檢查的 IP 位址。
如要瞭解設定 Cloud DNS 記錄和健康狀態檢查時應注意的最佳做法,請參閱「最佳做法」。
內部負載平衡器的健康狀態檢查
內部負載平衡器的健康狀態檢查僅適用於私人區域。
對於內部應用程式負載平衡器和內部 Proxy 網路負載平衡器,Cloud DNS 在決定路由時,會考量負載平衡器本身的健康狀態。負載平衡器收到查詢時,只會將流量分配給健康狀態良好的後端服務。如要確保有健康狀態良好的後端,您可以使用代管執行個體群組 (MIG) 等服務,管理後端生命週期。Cloud DNS 不必瞭解個別後端的健康狀態,這項工作是由負載平衡器處理。
如果是內部直通式網路負載平衡器,Cloud DNS 會檢查負載平衡器個別後端執行個體的健康狀態資訊。Cloud DNS 會套用 20% 的預設門檻,如果至少有 20% 的後端執行個體健康狀態良好,負載平衡器端點就會視為健康狀態良好。DNS 路由政策會根據這個門檻,將端點標示為健康狀態良好或不良,並據此轉送流量。
單一內部直通式網路負載平衡器虛擬 IP 位址 (VIP) 可以有多個後端執行個體。如果內部直通式網路負載平衡器沒有任何後端執行個體,Cloud DNS 仍會將其視為健康狀態良好。如要確保健康狀態檢查正常運作,請在負載平衡器設定中指定至少一個後端執行個體。
端點標示為健康狀態不良時,可能會發生下列情況:
- 如果為政策設定了多個 VIP 位址,系統只會傳回健康狀態良好的 VIP 位址。
如果為政策 bucket 編寫的所有 VIP 位址皆健康狀態不良,該行政策就會失敗,系統會按照以下方式運作:
- 如果是 WRR 政策,Cloud DNS 會根據政策定義的比例,將流量分配給其餘健康狀態良好的端點。
- 若是容錯移轉政策,Cloud DNS 會將流量切換至政策中定義的備份端點。
- 如果所有政策 bucket 都健康狀態不良,Cloud DNS 運作時,會將所有端點視為健康狀態不良。這種情況可能會導致流量分配至沒有回應的端點。
如要進一步瞭解內部負載平衡器的健康狀態檢查,請參閱「健康狀態檢查總覽」。
健康狀態檢查間隔
Cloud DNS 會根據健康狀態檢查間隔,定期傳送健康狀態檢查探測。舉例來說,如果健康狀態檢查間隔為 30 秒,Cloud DNS 就會每 30 秒傳送一次健康狀態檢查探測。
若是 Cloud DNS 外部端點健康狀態檢查,健康狀態檢查間隔須介於 30 到 300 秒之間。
加權 round robin 路由政策和健康狀態檢查
Cloud DNS 支援的權重範圍為 0 到 1000 (含)。如果包含健康狀態檢查,會發生下列情況:
- 如果您設定多個目標,且權重皆為 0,流量會平均分配給這些目標。
- 如果您設定權重不為零的新目標,該目標就會成為主要目標,所有流量都會轉移至該目標。
- 隨著您新增更多權重不為零的目標,Cloud DNS 會為每個要求動態計算目標間的流量分配,並適當分配流量。舉例來說,如果設定了三個目標,權重分別為 0、25 和 75,則權重為 0 的目標不會獲得任何流量,權重為 25 的目標會獲得四分之一的流量,最後一個目標則獲得四分之三的傳入流量。
- 如果健康狀態檢查與權重不為零的目標相關聯,但與權重為零的目標無關聯,則權重為零的目標一律會視為健康狀態良好。如果所有不為零的記錄皆健康狀態不良,Cloud DNS 會傳回權重為零的記錄。
- 如果健康狀態檢查同時與權重不為零和權重為零的記錄相關聯,且所有記錄的健康狀態檢查都失敗,Cloud DNS 會傳回所有權重不為零的目標,並忽略權重為零的目標。
- Cloud DNS 選擇要傳回哪一個權重 bucket (單一政策項目) 給要求者時,只會傳回該權重 bucket 中的 IP 位址。如果您只在權重 bucket 指定一個 IP 位址,則回應只會包含該 IP 位址。如果權重 bucket 中有多個 IP 位址,Cloud DNS 會以隨機順序傳回所有 IP 位址。
健康狀態檢查記錄
Cloud DNS 支援健康狀態檢查記錄;若 IP 位址已啟用健康狀態檢查,當您查詢參照這些 IP 位址的 DNS 名稱時,Cloud DNS 會記錄這些 IP 位址的健康狀態。
透過健康狀態檢查記錄,您可以執行下列操作:
- 驗證路由政策是否如預期運作。例如:
- 若是 WRR 政策,您可以驗證政策是否以正確權重傳回 IP 位址。
詳情請參閱「健康狀態檢查記錄資訊」。
DNS 路由政策支援的記錄類型
DNS 路由政策僅支援部分 Cloud DNS 支援的記錄類型。
支援的記錄類型如下:
| 記錄類型 | 說明 |
|---|---|
| A | 內部 (私人區域) 健康狀態檢查的 IPv4 位址。 |
| CNAME | 標準名稱。不支援健康狀態檢查。 |
| MX | 郵件交換記錄。不支援健康狀態檢查。 |
| SRV | 主機/通訊埠 (RFC 2782)。不支援健康狀態檢查。 |
| TXT | 文字資料。不支援健康狀態檢查。 |