1. 程式人生 > >kong閘道器 DNS-based loadbalancing 配置

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解析器。
    相關例子將在另一篇貼出來