日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Istio,灰度发布从未如此轻松!!!

發布時間:2025/3/21 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Istio,灰度发布从未如此轻松!!! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

三個問題,回顧前情提要。

ServiceMesh解決什么問題?

SM本質是業務服務底層技術體系解耦

  • 一個進程實現業務邏輯(不管是調用方,還是服務提供方),biz,即上圖白色方塊

  • 一個進程實現底層技術體系,proxy,即上圖藍色方塊

畫外音:負載均衡、監控告警、服務發現與治理、調用鏈…等諸多基礎設施,都放到這一層實現。

什么是Istio?

Istio是ServiceMesh的產品化落地。

Istio的分層架構設計如何?

Istio采用實施與控制分離的數據平面與控制平面兩層架構。

數據平面

  • envoy(proxy):負責高效轉發與策略落地[核心]

控制平面

  • mixer:適配組件,數據平面與控制平面通過它交互

  • pilot:策略配置組件[核心]

  • citadel:安全組件

  • galley:底層平臺(例如:K8S)解耦組件

整個架構的核心是envoy與pilot。

今天起,聊聊Istio的流控,典型如灰度發布。

就如同ServiceMesh的設計初衷,是技術體系與業務服務解耦一樣,Istio流控模型的本質,是流量控制與服務實例擴展的解耦,更具體的:

  • 用戶只需要通過控制平面中的Pilot設定期望流量要以什么規則進行路由

  • 不需要規定服務實例(service pods)如何接收

  • 數據平面Envoy將從Pilot中獲取規則和命令,然后落地各類分流策略

如上圖所示,最開始時,ServiceA訪問舊版的ServiceB。

畫外音,業務與底層解耦:

(1)灰色圓形為業務Svc服務;

(2)紫色六邊形為Envoy代理;

(3)服務與代理之間都是本地訪問;

(4)跨網段之間都是Envoy代理交互(藍色箭頭);

如何進行灰度發布呢?

如上圖所示,服務A調用服務B,服務B要發布一個灰度版本,需要5%的流量打到服務B的新版本,只需要:

(1)部署服務B的新版本;

(2)控制平面Pilot上進行策略配置,策略同步到Envoy;

(3)數據平面Envoy接收到策略配置,實時分流策略;

畫外音:圖形上沒有畫出Pilot和Envoy的交互。

搞定,這個過程業務服務與流量控制策略完全解耦,完美!

除了基于按流量比例分流的灰度發布,基于應用層的灰度發布通過Istio也非常容易實現。

如上圖所示,服務B要發布一個灰度版本,需要把iPhone的流量打到B的新版本,操作流程完全一樣(部署服務,Pilot控制,Envoy實施),非常方便。

如果Envoy原來只支持按照流量比例分流,不支持基于應用層協議分流,此時只需要:

(1)升級Envoy的分流策略,以及策略控制端Pilot;

(2)調用方服務A不需要升級;

(3)服務方服務B也不需要升級;

業務與底層基礎設施完全解耦,完美!

畫外音:這是Service Mesh的核心理念之一,詳見《ServiceMesh究竟解決什么問題》。

如果是用傳統微服務框架的方式,需要框架升級,調用方與服務方均需要配合升級與重啟。

最近下班都比較晚,今天先寫到這里。Pilot的分層架構如何,它又是如何與Envoy配合實現流控的,且聽下回分解。

思路比結論重要。

總結

以上是生活随笔為你收集整理的Istio,灰度发布从未如此轻松!!!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。