kong閘道器 DNS-based loadbalancing 配置
阿新 • • 發佈:2018-11-20
kong閘道器負載均衡配置方式分為DNS-based loadbalancing和Ring-balancer兩種,Ring-balancer方式的負載均衡配置之前已經介紹過------[Ring-balancer],今天這裡主要介紹基於DNS的負載均衡配置。
DNS-based loadbalancing
當kong閘道器配置了dns解析器,後端服務的註冊是有dns伺服器完成,也就是說,kong閘道器會定時(ttl值)請求dns解析器,完成hostname解析。
- DNS解析的結果為A記錄
A記錄包含一個或多個IP地址。 因此,當主機名解析為A記錄時,每個後端服務必須具有自己的IP地址。由於沒有重量資訊,所有服務在負載均衡器中將被視為相等加權,並且平衡器將執行直接迴圈。 - DNS解析的結果為srv記錄
後端服務可以通過IP地址和埠號的唯一組合來識別。 因此,單個IP地址可以在不同埠上託管同一服務的多個例項。由於權重資訊可用,每個條目將在負載均衡器中獲得自己的權重,並且它將執行加權迴圈。同樣,任何給定的埠資訊都將被來自DNS伺服器的埠資訊覆蓋。
說人話就是如果你在kong閘道器配置的hostname在dns伺服器中解析為A型別,解析結果只包含ip,kong閘道器會用這個ip+service中配置的port來完成負載。 如果解析為SRV型別。解析結果包含ip+post,附加的還有weight,ttl值,kong閘道器會用這裡的ip+port+weight完成負載。每個ttl秒時間,會請求一次dns伺服器。在這個中間中kong閘道器會從快取得到上次請求的資訊,完成負載。
kong.config配置
- dns_resolver:配置dns解析器的地址。這裡我配置coreDNS的地址
- dns_hostsfile :指定host檔案,只在kong閘道器啟動時載入,修改後要reload
- dns_order:這裡是解析的順序
The last successful type previously resolved ---------- 上次解析成功的記錄
SRV record
A record
CNAME record ---------- 相當於別名
換句話說,當給定的hostname解析的結果既包含SRV又有A時,會通過SRV完成路由。 - dns_stale_ttl :這個值將在後臺獲取新的DNS記錄時使用。具體不詳。
- dns_no_sync:我的理解是如果為true,將會在快取沒有命中時查詢dns解析器,當為false時,相同型別的多個會hostname會請求一次dns解析器。
相關例子將在另一篇貼出來