51微服務網(wǎng)格治理k8s實戰(zhàn)之istio資源詳解
流量管理介紹
Istio流量路由規(guī)則可以很容易的
控制服務之間的流量
和API調(diào)用
。能實現(xiàn)A/B測試、金絲雀發(fā)布、
基于流量百分比
發(fā)布。開箱即用的
故障恢復
特性,有助于增強應用的健壯性
,從而更好地應對被依賴的服務或網(wǎng)絡發(fā)生故障的情況。Istio 的流量管理由
Envoy
代理服務提供。網(wǎng)格內(nèi)服務發(fā)送和接收的所有流量
都由Envoy 代理
處理,讓控制網(wǎng)格內(nèi)的流量變得異常簡單,不需要對服務做更改。
為了在網(wǎng)格中導流,Istio 需要知道?endpoint 在哪和屬于哪個服務
。為了定位到service registry(服務注冊中心)
,Istio 會連接到一個服務發(fā)現(xiàn)系統(tǒng)。例如,如果您在 Kubernetes 集群上安裝了 Istio,那么它將自動檢測該集群中的服務和 endpoint(端點)。
使用此服務注冊中心,Envoy 代理
可以將流量定向到相關服務。大多數(shù)基于微服務的應用程序
,每個服務的工作負載都有多個實例來處理流量,稱為負載均衡池
。默認情況下,Envoy 代理基于輪詢調(diào)度在服務的負載均衡池內(nèi)分發(fā)流量,按順序請求發(fā)送給池中每個成員,一旦所有服務實例均接收過一次請求后,重新回到第一個池成員。
這些 API 也使用 Kubernetes 的自定義資源定義(CRDs)來聲明,可以使用 YAML 進行配置
。
標簽: