istio中的流量管理的核心組件是Pilot(理論)

用於Istio中的流量管理的核心組件是Pilot,它管理和配置在特定Istio服務網格中部署的全部Envoy代理實例。它容許您指定要用於在Envoy代理之間路由流量的規則,以及配置故障恢復功能(如超時,重試和斷路器)。它還維護網格中全部服務的規範模型,並使用它來讓Envoys經過其發現服務瞭解網格中的其餘實例。api

每一個Envoy實例根據從Pilot獲取的信息以及對其負載平衡池中其餘實例的按期運行情況檢查來維護負載平衡信息,從而容許它在遵循其指定的路由規則的同時智能地在目標實例之間分配流量。服務器

交通管理的好處

使用Istio的流量管理模型實質上解耦了流量和基礎架構擴展,讓運營商經過Pilot指定他們但願流量遵循的規則,而不是哪些特定的pod / VM應該接收流量 - 飛行員和智能Envoy代理負責其他的工做。所以,例如,您能夠經過Pilot指定您但願特定服務的5%流量轉到金絲雀版本,而無論金絲雀部署的大小,或根據請求的內容將流量發送到特定版本。架構

用Istio進行交通管理ide

將流量從這樣的基礎設施擴展中分離,容許Istio提供存在於應用程序代碼以外的各類流量管理功能。除了用於A / B測試,逐步推出和金絲雀版本的動態請求路由以外,它還使用超時,重試和斷路器處理故障恢復,最後使用故障注入來測試跨服務的故障恢復策略的兼容性。這些功能都是經過服務網格上部署的Envoy sidecars / proxies實現的。svg

 

Pilot負責整個Istio服務網格中部署的Envoy實例的生命週期。測試

試點架構ui

如上圖所示,Pilot維護網格中服務的規範表示,該服務獨立於底層平臺。Pilot中特定於平臺的適配器負責適當地填充此規範模型。例如,Pilot中的Kubernetes適配器實現了必要的控制器,以觀察Kubernetes API服務器是否更改了pod註冊信息,入口資源以及存儲流量管理規則的第三方資源。該數據被翻譯成規範表示。特定於特定的配置基於規範表示生成。spa

Pilot公開API用於服務發現,動態更新到負載平衡池路由表。這些API將Envoy與特定於平臺的細微差異分離,簡化了設計並提升了跨平臺的可移植性。翻譯

運營商能夠經過Pilot規則API指定高級別流量管理規則。這些規則被轉換爲低級配置,並經過發現API分發給Envoy實例。設計

 

https://istio.io/docs/guides/bookinfo/

https://istio.io/docs/concepts/traffic-management/pilot/

相關文章
相關標籤/搜索