全方位解讀 | Istio v1.1正式發佈

北京時間2019年3月20日,Istio v1.1版本發佈。在Istio繼續1.0版本以後,前後發佈了6個補丁來擴充和完善相關功能。通過8個月的努力,不可勝數的測試迭代,1.1版本終於和你們見面,引發普遍討論。git

在對Istio 1.1進行全方位解讀以前,咱們先來回顧一下Istio的設計初衷。Istio設計之初指望於可以簡化應用的開發及部署方式,把應用上線所需的外圍支撐系統與業務應用相分離,從而減輕開發團隊的壓力,提高開發效率。同時Istio基於網絡代理的實現方案,爲業務運行時的流量控制、安全策略以及運行態實時監測提供了強大的支持功能。而這些功能必定程度上等價於給業務系統減負,使得服務可以更快更方便地構建、遷移和發佈。github

Istio 1.1官宣新主題在於enterprise-ready(企業應用水準)。從官方文檔給出的Release Notes分析,1.1版本基於Istio 以前版本被詬病的性能問題作了重點優化,同時針對隔離性、安全性、多集羣和可擴展性作了進一步增強,以知足用戶對於多場景的支持。安全

Istio最新架構如圖所示:性能優化

圖片描述

性能優化網絡

Istio 1.1帶來的最顯著的性能變化在於提高了數據平面和控制平面的執行效率。根據官方測試數據顯示(在本地環境有待進一步驗證),新發布的istio-proxy(sidecar)僅須要半個vCPU的資源就能夠支撐1000 RPS,同時單個Pilot實例僅僅須要1.5個vCPU與2 GB RAM就能夠支持1000個應用(2000個pod)。Istio-proxy在半數狀況下僅增長5ms延遲,在99%的狀況下增長10ms延遲。從而初步解決Pilot資源過分消耗以及istio-proxy延遲大的劣勢。架構

隔離性ide

Istio 1.1 提供新類型的sidecar資源,容許用戶基於namespace增長sidecar對象對邊界強制控制,以達到減輕proxy計算負擔的效果。同時增長exportTo字段,用來指定網絡資源在namespace中的生效範圍。性能

安全性測試

Istio 1.1在安全性方面一樣有了很大的提高,主要包括更新serviceEntity資源,使得HTTPS的服務不在須要額外的VirtualService來開啓SNI路由;在啓動雙向TLS的場景下,支持Readiness,Liveness健康檢查策略;更新集羣RBAC的權限配置,使用ClusterRbacConfig對象替代原來的RbacConfig,以擴展集羣範圍的RBAC的權限控制;集成Vault PKI,動態加載和替換外部證書,TCP服務受權,插件憑證保護以及SDS身份認證等方式。大範圍增長了Isito的安全特性。優化

多集羣

Istio 1.1 改進流量控制和策略的默認配置,引入Galley新組件,用來驗證YAML文件的規範性,合法性,以下降配置錯誤的概率。同時Galley能夠在集羣中發揮強大的做用,用來從多個kubernetes集羣中收集服務發現信息。同時支持在無需扁平網絡的前提下實現單一控制平面與多個同步控制平面。

部署安裝

Istio 1.1修改Helm chart,關閉Egressgateway,默認關閉Mixer Policy以及容許全部的出口流量,同時容許自定義CRD與istio chart分離,提供數據延續性。

Istio 1.1還提供了其餘方面的更新,例如鏈路跟蹤優化,外部Adapter等。

新版本具體更新文檔地址: https://istio.io/docs/

新版本Release代碼下載地址:https://github.com/istio/istio

圖片描述

相關文章
相關標籤/搜索