天天看點

Istio讀書筆記-02

《Istio實戰指南》 by 馬若飛 2019年9月第1版

書中的 Istio 為 1.1版

---

索引

核心控件:Envoy、Pilot、Mixer、Citadel、Galley

主要功能:流量管理、政策和遙測、可視化、安全

Istio追求盡可能的透明,通過 各種解耦設計 讓系統對内對外都沒有依賴,還提供 高度的擴充性。

Istio 應用的增長和服務的增多,擴充政策系統 是 最主要的需求,以增量的方式進行擴充。

資料平面、控制平面分離

各個元件都成為插件

開放和包容的設計思路

1、Envoy

Istio資料平面 就是 代理。

Envoy作為 Sidecar代理。

一個為面向服務的架構而設計的7層代理和 通信總線,基于C++11。

将流量行為和資料提取出來發送給Mixer元件。

主要功能:

http 7層路由

grpc、http/2

服務發現 和 動态配置

健康檢查

進階負載均衡

英文:n.  使節,使者; 代表;

2、Pilot

實作流量管理的核心元件。

主要作用:配置和管理envoy代理。

設定代理之間特定的流量規則,配置逾時、重試、熔斷等。

流量行為的路由規則 轉換為 envoy配置 廣播到envoy

把服務發現機制抽象出來 并轉換成API分發給envoy

主要任務:

從平台(如K8S)擷取服務資訊,完成服務發現;

擷取istio的各項配置,轉換成envoy代理可讀的格式并分發。

Rules API

流量規則

Envoy API

動态更新LB 和 路由表的API

3、Mixer

主要功能:提供政策控制,并從envoy代理 收集 遙測資料。

每次網絡通信時,envoy代理 都會向 mixer發出 預檢要求,用來監測調用者的合法性。

調用後,envoy代理 會發送 遙測資料 提供mixer收集。

一般情況下 Sidecar代理 會緩存資料。

擴充卡 是 重要組成部分,插件模型。

部分擴充卡API:日志後端、限額後端、授權後端、遙測後端

自定義擴充卡

4、Citadel

與安全相關的元件,主要負責 密鑰和證書管理。

提供 服務間和終端使用者的身份認證,

加密服務網格中的流量。

英文:n.  城堡,要塞; 大學營,根據地,避難所; (軍艦上的)炮廓;

5、Galley

2019年3月釋出的1.1版本中。

istio主要的 配置管理元件,負責 配置的擷取、處理和分發。

MCP(Mesh Configuration Protocol,網格配置協定)

英文:n.  單層甲闆大帆船; 軍艦艦長用的大劃艇; (船艦,飛機上的)廚房; 活版盤,長條校樣;

1、流量管理

服務間通信》流量管理

金絲雀釋出

傳統:LB、Nginx、權重、對流量的管理和基礎設施綁定到一起、難以維護

istio:輕松實作 各種次元的流量控制

Pilot + Envoy元件實作:将流量 和 基礎設施解耦

pilot配置規則

envoy按照規則執行各種流量管理功能

功能:動态請求路由、逾時、重試、熔斷,故障注入-測試容錯

具體功能:請求路由、入口網關(Ingress)和出口網關(Egress)、服務發現和LB、故障處理、故障注入

K8S提供了 服務注冊的能力,Istio基于平台實作服務發現和LB。

envoy一整套故障處理機制:逾時、重試、限流、熔斷(限額呢?)

故障注入:在系統中認為地設定一些故障,來測試系統的穩定性和系統恢複的能力。Istio支援2種:延遲、中斷。

Envoy的LB池

2、政策和遙測

政策:限流(調用頻率、速率限制)、白名單和黑名單

Istio依靠 mixer完成。

預先檢查

名額資料的采集和和彙總——遙測功能

遙測:Telemetry,從遠端裝置中收集資料

各種名額(metric)資料,BI資料分析

Envoy代理 發送資料給 Mixer

接入不同的後端設定作為擴充卡:日志分析系統、監控系統

3、可視化

沒有完備的、可觀察的監控系統就無法保障系統的穩定性。

監控、追蹤工具

Grafana監控工具:Prometheus,名額資料

Jaeger作為追蹤系統:調用鍊跟蹤

Kibana系統:日志

4、安全

多個元件協同

Ctadel:密鑰和證書管理

Pilot:授權政策等資訊分發給Envoy代理

Envoy:根據政策實作服務間安全通信

Mixer:負責管理授權等工作

認證:istio的2種類型的身份認證——傳輸認證(服務間)、來源認證(最終使用者認證,驗證終端使用者或裝置,JWT(JSON Web Token)實作)

授權:沿用K8S的授權方式RBAC(Role-Based Access Control),不同級别的通路控制(命名空間級别、服務級别、方法級别)

Pilot + Envoy代理

Istio:

開源的S.M.産品,提供了統一的方式 管理流量、設定安全和監控等服務治理的能力。

資料平面、控制平面。各個元件充分解耦》優雅。第二代。