Istio架構
[img index=1]
Istio由下面幾個部分組成:Pilot,Mixer,Ingress-Controller和Egress-Controller,以及Istio CA(證書頒發機構):
Pilot - 負責在執行時配置Envoy和Mixer。
Envoy - 每個微服務的Sidecar代理,用於處理叢集中服務之間以及從服務到外部服務之間的入口/出口流量。代理形成一個安全的微服務網格,提供豐富的功能如服務發現、豐富的第7層路由、斷路器、策略實施和遙測記錄/報告功能。類似Spring cloud全家桶中的eureka、ribbon和Hystrix。
Mixer- 在基礎架構後端之上建立可移植層。在基礎架構級別實施ACL、速率限制、配額、身份驗證、請求跟蹤和遙測收集等策略。
Ingress/Egress(入口/出口) - 配置基於路徑的路由。類似Zuul API閘道器路由功能
Istio CA - 透過TLS保護服務通訊。提供金鑰管理系統,以自動化金鑰和證書生成,分發,輪換和撤銷
這些配置類似Spring Cloud的API閘道器Zuul路由配置,類似Nginx,只要將這yaml配置部署到k8s中API網格即可生效:
分割流量:能進行黑白或藍綠測試,包括部署金絲雀版本:
這些路由資訊可以透過命令實時獲得:
上述結果顯示:微服務bookinfo 的API閘道器是bookinfo-gateway。
2.負載監測:Istio可以深入瞭解應用程式的工作方式和效能指標。生成各種圖表:
Grafana:這是Istio Grafana儀表板。儀表板返回當前正在處理的請求總數,以及每次呼叫的錯誤數和響應時間。由於Istio管理整個服務之間的通訊,因此儀表板將突出顯示彙總的總計和單個服務級別資訊的細分。
Jaguar:為每個HTTP請求提供跟蹤資訊。它顯示了進行了哪些呼叫以及每個請求中花費的時間。可檢視單個請求和HTTP呼叫的詳細資訊,這是識別問題和潛在效能瓶頸的絕佳方法。
Service Graph服務圖:隨著系統的發展,可能難以視覺化服務之間的依賴關係,服務圖將繪製系統如何連線的依賴關係樹。
Istio由下面幾個部分組成:Pilot,Mixer,Ingress-Controller和Egress-Controller,以及Istio CA(證書頒發機構):
Pilot - 負責在執行時配置Envoy和Mixer。
Envoy - 每個微服務的Sidecar代理,用於處理叢集中服務之間以及從服務到外部服務之間的入口/出口流量。代理形成一個安全的微服務網格,提供豐富的功能如服務發現、豐富的第7層路由、斷路器、策略實施和遙測記錄/報告功能。類似Spring cloud全家桶中的eureka、ribbon和Hystrix。
Mixer- 在基礎架構後端之上建立可移植層。在基礎架構級別實施ACL、速率限制、配額、身份驗證、請求跟蹤和遙測收集等策略。
Ingress/Egress(入口/出口) - 配置基於路徑的路由。類似Zuul API閘道器路由功能
Istio CA - 透過TLS保護服務通訊。提供金鑰管理系統,以自動化金鑰和證書生成,分發,輪換和撤銷
Istio的具體特點
1. 控制路由:大規模的微服務架構需要更高階的服務之間的通訊控制。流量管理的一個方面是基於HTTP請求控制流量路由,例如使用者代理字串,IP地址或cookie。
以下yaml配置檔案是將使用者“jason”的所有流量傳送到評論:v2
spec: hosts: - reviews http: - match: - headers: end-user: exact: jason route: - destination: host: reviews subset: v2 - route: - destination: host: reviews subset: v1 <p class="indent"> |
這些配置類似Spring Cloud的API閘道器Zuul路由配置,類似Nginx,只要將這yaml配置部署到k8s中API網格即可生效:
kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml <p class="indent"> |
分割流量:能進行黑白或藍綠測試,包括部署金絲雀版本:
spec: hosts: - reviews http: - route: - destination: host: reviews subset: v1 weight: 50 - destination: host: reviews subset: v3 weight: 50 <p class="indent"> |
這些路由資訊可以透過命令實時獲得:
master $ istioctl get virtualservices VIRTUAL-SERVICE NAME GATEWAYS HOSTS HTTP TCP NAMESPACE AGE bookinfo bookinfo-gateway * 1 0 default 3m <p class="indent"> |
上述結果顯示:微服務bookinfo 的API閘道器是bookinfo-gateway。
2.負載監測:Istio可以深入瞭解應用程式的工作方式和效能指標。生成各種圖表:
Grafana:這是Istio Grafana儀表板。儀表板返回當前正在處理的請求總數,以及每次呼叫的錯誤數和響應時間。由於Istio管理整個服務之間的通訊,因此儀表板將突出顯示彙總的總計和單個服務級別資訊的細分。
Jaguar:為每個HTTP請求提供跟蹤資訊。它顯示了進行了哪些呼叫以及每個請求中花費的時間。可檢視單個請求和HTTP呼叫的詳細資訊,這是識別問題和潛在效能瓶頸的絕佳方法。
Service Graph服務圖:隨著系統的發展,可能難以視覺化服務之間的依賴關係,服務圖將繪製系統如何連線的依賴關係樹。
[img index=2]
使用Weave Scope視覺化群集:Service Graph顯示了系統連線方式的高階概述,而Weave Scope工具為整個群集提供了強大的視覺化和除錯工具。使用Scope,可以檢視每個pod中正在執行的程式以及哪些pod正在相互通訊。 這允許使用者瞭解Istio及其應用程式的行為方式。
[img index=3]
[該貼被banq於2018-08-01 12:04修改過]
相關文章
- Istio新架構揭秘:環境化Mesh架構
- 下一代 Service Mesh — istio 架構分析架構
- 下一代 Service Mesh -- istio 架構分析架構
- 基於 Istio 的灰度釋出架構方案實踐之路架構
- 從架構到元件,深挖istio如何連線、管理和保護微服務2.0?架構元件微服務
- 架構之:serverless架構架構Server
- 為微服務構建服務網格的Istio自身卻走向微服務的反面單體架構 – Christian Posta微服務架構
- Istio
- SaaS架構:流程架構分析架構
- 【細品架構4/100】架構之架構切分架構
- 架構師修煉之道(二)——架構?設計?架構師?架構
- 單體架構&微服務架構&中臺服務架構架構微服務
- 架構之:資料流架構架構
- 前端架構之小小node架構前端架構
- 邏輯架構和物理架構架構
- 軟體架構與架構師架構
- 單體架構到垂直架構架構
- 架構架構
- 業務架構、資訊架構、技術架構三位一體架構
- 書籍:精益架構(敏捷架構 瘦架構 Lean Architecture)架構敏捷
- 架構演進之「微服務架構」架構微服務
- MySQL 高可用架構之 MMM 架構MySql架構
- 架構之:微服務架構漫談架構微服務
- 架構之:軟體架構漫談架構
- 遊戲架構 遊戲架構設計(8)遊戲架構
- 【架構分析】MESA (EGL/GLES)架構分析架構
- REST架構風格的架構元素REST架構
- 網站架構及架構演變網站架構
- 架構C01: 什麼是架構?為什麼做架構?架構師需要做什麼?架構
- 按照業務領域畫資料架構圖 業務架構 資料架構架構
- 架構師眼中的高併發架構架構
- 架構設計之一——基礎架構架構
- Java架構-到底什麼才是業務架構?Java架構
- 軟體架構模式之微服務架構架構模式微服務
- LNMP架構與LNAMP架構的區別LNMP架構
- IT架構之IT架構模型——思維導圖架構模型
- bs架構與cs架構的區別架構
- 軟體架構風格——規則架構架構