華爲雲講解:1. Istio架構與原理

華爲雲講解:Istio架構與原理

Service Mesh

Kubernetes

  • Kubernetes 提供雲平臺基礎設施層強大容器編排與調度能力

    服務部署與彈性伸縮: Depoyment

    服務拆分與服務發現:Service

  • Kubernetes提供簡單的負載均衡

    負載均衡:基於IPVS或者Iptables的簡單均衡機制

在原始的時候一個應用跑到集羣上,可能會把應用服務治理的邏輯寫到代碼裏面,這樣就會跟服務耦合在一起了,給開發帶來麻煩,能不能把服務治理才分開放到SDK,比如SpringCloud,但在這樣還是要放在應用裏面。還是麻煩,能不能把服務的治理獨立出來,出現了Service Mesh。

image-20200213142726474

他可以在Kubernetes上完美的補氣服務治理

image-20200213142828338

Istio 架構基礎

上面的是服務簡稱“數據面”,下面是“控制面”

Proxy 就是服務代理用的Envoy

Pilot

image-20200213142947990

image-20200213144344862

Istio 基本概念

image-20200213144418336

Gateway :服務網關轉發到VitualService主要是根據我們的請求

,一個服務有三個版本v1v2v3根據條件轉發到哪個版本,

VitualService把請求導入到某個v1版本之後這會就走到

DestinationRule主要工作是假設v1有三個副本負載均衡策略使用和最小連接的配置

image-20200213145046825

看圖說話:VirtualService 功能有個服務叫reviews ,訪問reviews的URL帶“/wpcatlog”或者“/cosumercatlog”就是走match的route,而且會把URL重寫成“/newcatalog” 然後導入到route的reviews:v2版本,沒有則走默認的route 也就是reviews:v1版本

image-20200213145644484

看圖說話:DestinationRule 是在VirtualService導入指定服務的版本之後,進行一個實例副本數的負載,限流策略等。 trafficPolicy 是定義默認策略 LEAST_CONN 是最小連接,subsets 是指定哪些版本使用這個鏈接策略。圖中v1v2 都是使用默認策略。二v3 裏面有定義了一個trafficPolicy,策略是輪訓。就近規則。

image-20200213150454322

VirtualService裏面綁定了Gateway,建立綁定關係

image-20200213150656593

ServiceEntry 如果想訪問外網也是需要建立這個東西

Istio & Kubernetes :架構結合

image-20200213150906238

運行一個Istio集羣

運行官方提供的bookinfo 例子,

image-20200213151651032

這個官方提供的bookinfo 應用,每個pod有兩個實例,一個是應有,另一個就是sidecar。在剛創建的Init時候IPtables 那邊做一些規則,然後通過sidecar帶到了pod裏面,通過規則把進出口的流量,都導到Envoy上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章