日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Istio架构详解

發布時間:2023/12/31 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Istio架构详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Istio架構及其組件概述

Istio 架構總體來說分為控制面和數據面兩部分。
控制面是 Istio 的核心,管理 Istio 的所有功能,主要包括Pilot、Mixer、Citadel等服務組件;
數據面由伴隨每個應用程序部署的代理程序Envoy組成,執行針對應用程序的治理邏輯。常被稱為“Sidecar”。Sidecar 一般和業務容器綁定在一起(在Kubernets中自動注入方式到業務pod中),來劫持業務應用容器的流量,并接受控制面組件的控制,同時會向控制面輸出日志、跟蹤及監控數據。

Istio 的主要組件及其相互關系大致如圖所示(摘自《云原生服務網格Istio》)。

?

結合上圖我們來理解Istio的各組件的功能及相互之間的協作方式。

1. 自動注入:在創建應用程序時自動注入 Sidecar代理Envoy程序。在 Kubernetes中創建 Pod時,Kube-apiserver調用控制面組件的 Sidecar-Injector服務,自動修改應用程序的描述信息并注入Sidecar。在 真正創建Pod時,在創建業務容器的Pod中同時創建Sidecar容器。


2. 流量攔截:在 Pod 初始化時設置 iptables 規則,基于配置的iptables規則攔截業務容器的Inbound流量和Outbound流量到Sidecar上。而應用程序感知不到Sidecar的存在,還以原本的方式 進行互相訪問。上圖中,流出frontend服務的流量會被 frontend服務側的 Envoy攔截,而當流量到達forecast容器時,Inbound流量被forecast 服務側的Envoy攔截。


3. 服務發現:服務發起方的 Envoy 調用控制面組件 Pilot 的服務發現接口獲取目標服務的實例列表。上圖中,frontend 服務側的 Envoy 通過 Pilot 的服務發現接口得到forecast服務各個實例的地址。


4. 負載均衡:服務發起方的Envoy根據配置的負載均衡策略選擇服務實例,并連接對應的實例地址。上圖中,數據面的各個Envoy從Pilot中獲取forecast服務的負載均衡配置,并執行負載均衡動作。


5. 流量治理:Envoy 從 Pilot 中獲取配置的流量規則,在攔截到 Inbound 流量和Outbound 流量時執行治理邏輯。上圖中, frontend 服務側的 Envoy 從 Pilot 中獲取流量治理規則,并根據該流量治理規則將不同特征的流量分發到forecast服務的v1或v2版本。


6. 訪問安全:在服務間訪問時通過雙方的Envoy進行雙向認證和通道加密,并基于服務的身份進行授權管理。上圖中,Pilot下發安全相關配置,在frontend服務和forecast服務的Envoy上自動加載證書和密鑰來實現雙向認證,其中的證書和密鑰由另一個管理面組件 Citadel維護。


7. 服務監測:在服務間通信時,通信雙方的Envoy都會連接管理面組件Mixer上報訪問數據,并通過Mixer將數據轉發給對應的監控后端。上圖中,frontend服務對forecast服務的訪問監控指標、日志和調用鏈都可以通過這種方式收集到對應的監控后端。


8. 策略執行:在進行服務訪問時,通過Mixer連接后端服務來控制服務間的訪問,判斷對訪問是放行還是拒絕。上圖中,Mixer 后端可以對接一個限流服務對從frontend服務到forecast服務的訪問進行速率控制等操作。


9. 外部訪問:在網格的入口處有一個Envoy扮演入口網關的角 色。上圖中,外部服務通過Gateway訪問入口服務 frontend,對 frontend服務的負載均衡和一些流量治理策略都在這個Gateway上執行。

下一篇介紹詳細組件!

?

總結

以上是生活随笔為你收集整理的Istio架构详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。