1. 程式人生 > >《Istio官方文件》—— 服務發現與負載均衡

《Istio官方文件》—— 服務發現與負載均衡

原文連結  譯者:carvendy

服務發現與負載均衡

  本文講述Istio在服務網格中,如何對互動的服務進行負載均衡。

  服務註冊: Istio假定存在一個服務可以將pod/VM的地址資訊註冊上去。假設一個新的服務可以自動註冊上去,而當服務不健康的時候可以自動移除。管理平臺,比如說Kubernetes, Mesos 已經提供了類似功能在容器的基本應用中。基於VM的應用程式存在大量的解決方案。

  **服務發現:**領航者消費的資訊來自於服務註冊,提供一個未知平臺的服務發現介面。在網格中,使者例項完成了服務註冊,相應地動態更新負載均衡池資料。

image

  如上圖,在網格中的服務可以互相使用DNS。所有HTTP請求都會通過使者並實現自動路由。使者分佈在負載均衡池裡的服務請求。使者支援

複雜的負載均衡演算法,Istio允許三種方式:輪詢,隨機,權重最少的請求。

  為了負載均衡,使者週期性地檢查在池裡面的每個例項的健康狀態。使者允許斷路器按照規則來分類例項,健康與不健康基於健康檢查API的返回的失敗率。另一方面,當大量的檢查失敗超過了規定的界限,它將會從池裡面被剔除。同樣的,當大量的健康健康資料超過規定的界限,這個例項就會重新加入負載均衡池。你可以在失敗處理中找到更多關於使者的失敗處理特性。

  服務健康檢查時,不斷響應503狀態碼。發生了這樣的事情,那麼服務將很快地從負載均衡池中移除。