應用上雲,怎能沒有容器!點擊上方

容器魔方

關注我

概要

流量遷移是流量管理的一個重要功能。

istio

提供的流量管理功能將流量從基礎設施擴展中解耦,支持動態請求路由,故障注入、超時重試、熔斷和流量遷移等。流量遷移的主要目的是將流量從微服務的某一版本的逐步遷移至另一個版本,如在新舊版本之間進行流量切換。

本文通過一個簡單的用例介紹如何使用istio進行流量遷移。

Figure 1 bookinfo示意圖

本文使用一個bookinfo的典型例子。通過istio的命令配置規則,將流量從reviews的版本v1逐步遷移到版本v3。

在下面的例子中,應用基於權重路由配置,將百分百路由在reviews:v1版本的流量,逐步全部遷移到reviews:v3版本 。在操作前,需確保在當前環境下已經部署好正常運行的bookinfo,並提供對外訪問地址。

流量遷移的具體操作如下:

1.將所有流量路由到reviews:V1版本。

2.在瀏覽器中輸入外部訪問地址,訪問bookinfo應用

此時刷新頁面,頁面右側的評論部分始終不會顯示評級星號。這是因為 Istio 被配置為將 reviews 服務的所有流量都路由到了 reviews:v1 版本, 而該版本的服務不會訪問帶星級的 ratings 服務。

3.把50%的流量從 reviews:v1 轉移到 reviews:v3:

 等待幾秒鐘確保新的規則生效,查看yaml文件,v1和v3的權重各為50%:

4.刷新瀏覽器中的頁面,能夠看到約為50%的幾率頁面中出現帶紅色星級的評價內容。

這是因為 v3 版本的 reviews 訪問了帶紅色星級評級的 ratings 服務,但v1版本卻沒有。在istio目前的實現中,這種概率基於大量訪問。增強訪問規則中v3的權重,可以將更多的流量路由到v3版本,從而更多次看到帶紅色星級的評價。

5.當v3版本可以穩定的提供服務時,用戶可以選擇將所有流量路由到V3版本上。

等待幾秒鐘確保新的規則生效,查看yaml文件,所有流量走向V3版本:

此時刷新瀏覽器界面,只會看到紅色星級評價的頁面。

6.如不再使用當前路由規則,執行刪除命令,刪除路由規則:

流量遷移是流量管理的一個重要功能,具有廣泛的應用場景。在上述實踐中,使用istio基於權重的路由方式將流量從reviews 服務的舊版本逐步遷移到新版本。使用istio進行流量遷移,兩個版本的reviews服務可以分別擴容和縮容,有助於微服務的獨立管理,不會影響版本之間的流量分發。而使用容器編排平台的部署功能進行版本遷移,實際是使用了實例擴容來對流量進行管理,兩者原理並不相同。

推薦閱讀

idou老師教你學Istio 04:Istio性能及擴展性介紹

idou老師教你學Istio05: 如何用Isito實現智能路由配置

Istio技術與實踐06:史上最全!Istio安裝參數介紹

點擊

閱讀原文,

回帖即可

報名


推薦閱讀:
相关文章