kong網關 DNS-based loadbalancing 配置

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解析器。
    相關例子將在另一篇貼出來
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章