本文整理自Istio社區成員Star在html
Cloud Native Days China 2019 北京站的現場分享程序員
第1則安全
主角 Istio網絡
Istio做爲service mesh領域的明星項目,從2016年發佈到如今熱度不斷攀升。架構
Istio & Envoy Github Star Growth併發
官網中Istio1.1的架構圖除了數據面的Envoy和控制面的Pilot,Mixer,Citadel三大組件外,引入了Galley組件驗證Istio API 的配置。運維
Istio能帶來什麼收益呢?ide
開發和運維過程當中咱們常常會碰到下面的問題:如何作到新版本的上線不影響現網業務的運行?若是訪問系統的請求忽然增多,咱們的系統處理不了怎麼辦?若是系統出現問題,到底是哪一個服務的問題,服務之間的調用關係如何?業務程序員一般缺少安全相關的知識,能不能作到直接對沒有加密的流量自動加密?針對這些問題,Istio都有相應的方案解決,對應於它的各個功能組件。工具
第2則性能
Istio 1.1大不一樣
Istio 1.0的主題是生產可用,而1.1版本則是企業可用,強調1.1在大規模集羣(不少服務和負載)下的性能和可靠性可以得以保障。
下表是Istio1.1和1.0在流量管理的特性狀態的對比:
Istio 1.1版本的性能提高方面成果顯著。
在應用性能上:
應用的平均時延降低 30%
在大規模集羣中,服務啓動速度提升 40%
在管理面組件資源佔用率上:
大規模集羣中,Pilot CPU使用降低 90%
大規模集羣中,Pilot 內存使用降低 50%
Istio 1.1版本爲提升性能貢獻的重點優化項以下:
Sidecar API,減小發給proxy的配置數量以及pilot負載
網絡配置規則(Destinationrule,Virtualservie, ServiceEntry)中增長的 exportTo字段限制配置的可見範圍
Envoy默認收集的統計數據大量減小
給mixer增長load-shedding功能,防止overload。
提高envoy和mixer之間的交互協議
可配置併發線程數,提升吞吐量
可配置filter來約束mixer遙測數據
升級到Istio 1.1也很方便
1. 控制面板升級
Kubernetes rolling update
Helm 升級
2. 數據面升級
經過對全部的pods觸發rolling update從新注入sidecar (例如:patching the grace termination period)
Istio1.1的多集羣網格管理
新引入了多控制面方案和集羣感知(Split Horizon EDS)的單控制面方案:
多控制平面方案
單控制平面(Split Horizon EDS)方案
關於服務可見性,剛纔說到的大集羣規模性能的提高很大一部分歸功於服務可見性。主要由兩部分結合起來使用:
ExportTo字段
服務端的Service/ServiceEntry/Virtualservice/Destinationrule 配置exportTo字段,申明此網絡資源的可見範圍。
新增sidecar資源對象
請求端所在的namespace配置sidecar對象,能夠精確控制sidecar轉發到指定的namespace或service。
安全特性方面比較關心的一項是SDS(Secret Discovery Service):
提供更強的安全性:
經過節點密鑰生成,私鑰僅存在於 Citadel 和 Envoy Sidecar 的內存中。
不依賴 Kubernetes Secret
不須要掛載Secret 卷。
證書替換不須要重啓 Envoy
Sidecar 可以利用 SDS API 動態刷新密鑰和證書。
Istio 1.1的命令行工具Istioctl增長了離線校驗命令和驗證安裝命令,Istioctl棄用create、replace、get 和 delete使用 kubectl 代替,同時支持kubectl操做Istio網絡資源時使用縮寫。
Istio社區成立了用戶體驗工做組,專門致力於提升Istio的易用性,進一步下降使用門檻。
相關服務請訪問:https://support.huaweicloud.com/cce/index.html?utm_content=cce_helpcenter_2019