Istio新架構揭秘:環境化Mesh
來源:小技術君
自問世以來,Istio因其使用Sidecar(可程式設計代理與應用容器一同部署)而備受認可。這種架構選擇使Istio使用者能夠享受其好處,而無需對其應用進行 drast 改變。這些可程式設計代理,與應用容器緊密部署在一起,因其能夠引入Istio的諸多好處而備受讚譽,同時又無需對應用進行重大更改。但總有改進的空間,現在Istio引入了環境化Mesh,這是其架構的重大演進。
Sidecar模型:優勢和限制
傳統Istio模型:
•Istio在工作負載的Pod中部署Envoy代理作為Sidecar。
Sidecar的優勢:
•無需重構應用即可享受Istio的功能。
Sidecar的限制:
1.侵入性: Sidecar需要整合到應用中,影響其Kubernetes Pod規格並重定向Pod流量。這經常導致需要重啟應用Pod。2.資源利用不足: 由於每個Sidecar代理專門分配給其配對的工作負載,資源分配可能導致叢集效率低下。3.流量中斷: Istio的Sidecar可能對一些應用的流量捕獲和HTTP處理造成問題。
環境化Mesh:克服限制
環境化Mesh採用分層方法,分割了Istio的功能:
1.基礎層: 一個安全的覆蓋層,負責路由和確保流量的零信任安全。2.上層: 當使用者需要訪問Istio的廣泛功能時,可以啟用L7處理,而無需改變應用Pod。
這種方法的優勢包括:
•允許逐步採用Istio:從無Mesh -> 安全覆蓋層 -> 完整的L7處理。•在不同環境模式或帶有Sidecar的工作負載之間實現相容性。
環境化Mesh的工作原理
•在Kubernetes叢集的每個節點上都有一個共享代理(ztunnel),負責Mesh內的安全連線。
•Ztunnel僅處理L4流量,將Istio的資料平面與應用關注點分離。•當名稱空間啟用環境化模式時,將建立一個零信任覆蓋層(具有mTLS、遙測、認證和L4授權)。•對於L7功能,名稱空間可以部署一個或多個基於Envoy的Waypoint代理。這些代理可以根據實時流量需求進行自動縮放。
安裝環境化Mesh
•下載Istio的最新版本,其中包含對環境化Mesh的alpha
支援。•安裝Kubernetes閘道器CRDs,在大多數Kubernetes叢集上預設未安裝
kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \{ kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd/experimental?ref=v0.8.0" | kubectl apply -f -; }
•ambient
配置檔案旨在幫助您開始使用環境化Mesh。使用上面下載的istioctl
命令,在您的Kubernetes叢集上安裝帶有ambient
配置檔案的Istio:
istioctl install --set profile=ambient --set "components.ingressGateways[0].enabled=true" --set "components.ingressGateways[0].name=istio-ingressgateway" --skip-confirmation
✔ 安裝了Istio核心
✔ 安裝了Istiod
✔ 安裝了CNI
✔ 安裝了入口閘道器
✔ 安裝了Ztunnel
✔ 安裝完成
•使用以下命令驗證已安裝的元件:
kubectl get pods -n istio-system
名稱 就緒 狀態 重啟次數 年齡
istio-cni-node-n9tcd 1/1 執行中 0 57秒
istio-ingressgateway-5b79b5bb88-897lp 1/1 執行中 0 57秒
istiod-69d4d646cd-26cth 1/1 執行中 0 67秒
ztunnel-lr7lz 1/1 執行中 0 69秒
kubectl get daemonset -n istio-system
名稱 預期 當前 就緒 最新 可用 節點選擇器 年齡
istio-cni-node 1 1 1 1 1 kubernetes.io/os=linux 70秒
ztunnel 1 1 1 1 1 kubernetes.io/os=linux 82秒
安全考慮
環境化Mesh將安全性放在首位:
1.Ztunnel:
儘管是一個共享資源,但ztunnel將其金鑰限制在其節點上的工作負載上,降低風險。
1.Waypoint代理: 這些共享資源被限制在一個服務賬戶中,減少了來自受損代理的潛在傷害。2.Envoy的作用: 憑藉其強大、經過考驗的特性,Envoy被認為比它配對的許多應用更安全。
效能和資源影響
1.資源效率: 環境化Mesh的ztunnel減少了每個工作負載的預留資源。Waypoint代理的動態擴充套件也確保了資源最佳化。2.延遲問題: 雖然有一種看法認為Waypoint代理可能引入延遲,但Istio認為這能夠透過與傳統Sidecar模型相比減少的L7處理來平衡。
Sidecar的未來
環境化Mesh的推出並不意味著Sidecar的結束。它們仍然適用於需要專用資料平面資源的情景,比如合規性或效能調整。Istio將繼續支援Sidecar,確保它們與環境化Mesh和諧共存。
總之,環境化Mesh代表了服務網格架構邁出的一大步,解決了Sidecar模型的一些挑戰,併為使用者提供了更多的靈活性和效率。
系統設計概念系列文章
計算機的層次化架構
每個開發者都應該知道的7個原則
6個系統設計的基本概念
資料庫:系統設計的核心
圖解系列
系統設計中的快取技術:完整指南
關聯式資料庫的全景圖
Redis 全景解析
當然架構設計、全景圖解系列還有很多,快來關注一起學習吧~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024922/viewspace-2997842/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 下一代 Service Mesh — istio 架構分析架構
- 下一代 Service Mesh -- istio 架構分析架構
- Istio架構架構
- Data Mesh,一種新的資料架構理念!架構
- Istio Mixer Adapter開發 (二)Istio環境搭建APT
- 架構師需要懂的環境配置標準化架構
- Service Mesh之Istio部署bookinfo
- 瞭解 Linkerd Service Mesh 架構架構
- RocketMQ(1)---架構原理及環境搭建MQ架構
- 暴露 Istio Service Mesh 中的 GatewayGateway
- Istio service mesh示例教程彙總
- 『網際網路架構』軟體架構-環境搭建maven(三)架構Maven
- Service Mesh之Istio基礎入門
- Dubbo Mesh 總體技術架構方案架構
- App國內變現環境全揭秘APP
- MySQL 高可用架構 - MHA環境部署記錄MySql架構
- Service Mesh框架對比:Linkerd vs. Istio框架
- Istio實踐(1)-環境搭建及應用部署
- 容器雲環境下如何設計儲存架構?架構
- service mesh istio微服務實驗之監控日誌與視覺化微服務視覺化
- Kiali——Istio Service Mesh 的可觀察性工具
- service mesh istio-1.0 快速安裝體驗
- 乾貨帖 | TDSQL-A核心架構揭秘SQL架構
- 2020 年,從架構談起,到 Mesh 結束架構
- [原始碼解析] TensorFlow 分散式環境(1) --- 總體架構原始碼分散式架構
- LAMP架構部署和動態網站環境的配置LAMP架構網站
- Mac 新環境搭建Mac
- Istio資料面新模式:Ambient Mesh技術解析模式
- service mesh 開源實現 istio安裝測試
- Istio Mixer Adapter開發 (一)K8S環境搭建APTK8S
- Service Mesh 時代,Dubbo 架構該怎麼跟進?架構
- 企業應用架構研究系列十九:Docker開發環境應用架構Docker開發環境
- Dubbo Mesh 在閒魚生產環境中的落地實踐
- python新環境安裝Python
- 新裝Ubuntu環境配置Ubuntu
- 作業幫在多雲環境下的高可用雙活架構最佳化實踐架構
- 遙感技術在環境監測中的應用:揭秘地球變化的天眼
- 谷歌與Solo.io宣佈將Ambient Mesh引入Istio谷歌