使用Istio服務網格實現流量映象
Istio除了支援不同服務版本之間的更多“傳統”流量路由,包括可以基於各種傳入請求屬性,例如URL的部分,標頭值,請求方法等,Istio還支援流量映象。
當您不想釋出新版本並向其公開使用者時,可以使用流量映象,但您仍然希望部署它並觀察其工作原理,收集遙測資料並比較新舊服務的效能和功能。
您可能會問 - 這種部署和釋出有什麼區別?當我們談論將服務“部署”到生產時,我們只是將可執行程式碼(二進位制檔案,容器,程式碼所需的任何形式)移動到生產環境中,但不向它傳送任何生產流量。服務就在那裡,但它不會(希望如此!)影響它旁邊執行的任何現有服務。這是部署而不釋出。
釋出服務涉及獲取已部署的服務並開始將生產流量路由到該服務。此時,我們轉移到生產的程式碼正在執行,它可能會影響其他服務和終端使用者。
在兩個版本之間路由流量,執行藍綠色版本是有用的,但是存在風險 - 如果服務中斷或出現故障會怎樣?即使服務僅接收1%的生產流量,它仍然會對許多使用者產生負面影響。
流量映象背後的想法是將使用者暴露給潛在的錯誤服務的風險最小化。我們不是部署,釋放流量並將流量路由到新服務,而是部署新服務,然後只映象那些傳送到已釋出版本服務的生產流量。(類似模擬複流量)
然後,可以觀察服務接收映象流量的錯誤,但不會影響任何生產流量。除了對部署的服務版本執行各種測試之外,您現在還可以使用實際的生產流量並增加測試覆蓋率,這可以讓您更有信心並最大限度地降低釋出錯誤服務的風險。
以下是有關如何使用Istio開啟流量映象的快速摘錄:
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: greeter-service spec: hosts: - greeter-service http: - route: - destination: host: greeter-service port: number: 3000 subset: v1 weight: 100 mirror: host: greeter-service port: number: 3000 |
以上是將greeter-service的v1子集流量對映到v2子集
上面的虛擬服務將100%的流量路由到v1版本,同時還將相同的流量映象到v2版本。檢視此操作的最快方法是在向v1版本的服務傳送一些請求時,從v2服務中檢視日誌。
您將在網頁上看到的響應將來自服務的v1版本,但是,您還會看到傳送到v2版本的請求:
$ kubectl logs greeter-service-v2–78fc64b995-krzf7 -c svc -f > greeter-service@2.0.0 start /app > node server.js Listening on port 3000 GET /hello 200 9.303 ms — 59 GET /hello 200 0.811 ms — 59 GET /hello 200 0.254 ms — 59 GET /hello 200 3.563 ms — 59 |
相關文章
- 服務網格(Envoy+Istio)
- 使用 Istio CNI 支援強安全 TKE Stack 叢集的服務網格流量捕獲
- Istio 1.2服務網格釋出
- k8s-服務網格實戰-入門IstioK8S
- 服務網格istio概念應知應會
- hystrix對比服務網格istio的destinationrule
- 服務網格大戰,再見 Istio! - Fossas
- servicemesher/istio-handbook:服務網格Istio中文思維導圖
- Istio實踐(2)-流量控制及服務間呼叫
- 在阿里雲容器服務上基於Istio實現東西向流量管理阿里
- 初識 Istio - 服務網格管理工具
- 服務網格Istio、Linkerd和Cilium效能比較
- Istio中的服務和流量的抽象模型抽象模型
- 服務網格GCP (GKE, Istio, MSA) 搖滾組合GC
- 服務網格大事:Istio釋出1.0版本
- 從零搭建一個基於Istio的服務網格
- Istio最佳實踐:在K8s上透過Istio服務網格進行灰度釋出K8S
- Istio技術與實踐05:如何用istio實現流量管理
- 服務網格大比拼:Istio、Linkerd、Linkerd2和Consul
- 經驗分享:修復服務網格Istio大量503錯誤
- Istio流量管理實現機制深度解析
- 【連載】微服務網格Istio(一)微服務
- 使用服務網格提高安全性:Christian Posta帶你探索Istio的新功能
- 在 Istio 中實現 Redis 叢集的資料分片、讀寫分離和流量映象Redis
- 精彩分享 | 歡樂遊戲 Istio 雲原生服務網格三年實踐思考遊戲
- 比較服務網格:Linkerd 2.x與Istio 1.x
- 基於istio實現多叢集流量治理
- Istio的流量管理(實操二)(istio 系列四)
- Istio的流量管理(實操一)(istio 系列三)
- idou老師教你學Istio06: 如何用istio實現流量遷移
- 避免使用服務網格的原因? - Reddit
- 直播預告 | 服務網格規模化應用下的 Istio Sidecar 靈活配置實踐IDE
- Istio的流量管理(實操三)
- SpringBoot、Kubernetes和Istio微服務網格演示原始碼Spring Boot微服務原始碼
- 服務網格|如何使用 Amesh 配置外掛
- 華為雲Istio服務網格,讓應用治理智慧化、視覺化視覺化
- idou教你學Istio10 : 如何用Istio實現K8S Egress流量管理K8S
- idou老師教你學Istio: 如何用Istio實現K8S Egress流量管理K8S