idou老師教你學Istio06: 如何用istio實現流量遷移

華為雲發表於2019-03-01

概要

流量遷移是流量管理的一個重要功能。istio 提供的流量管理功能將流量從基礎設施擴充套件中解耦,支援動態請求路由,故障注入、超時重試、熔斷和流量遷移等。流量遷移的主要目的是將流量從微服務的某一版本的逐步遷移至另一個版本,如在新舊版本之間進行流量切換。本文通過一個簡單的用例介紹如何使用 istio 進行流量遷移。

idou老師教你學Istio06: 如何用istio實現流量遷移

本文使用一個 bookinfo 的典型例子。通過 istio 的命令配置規則,將流量從 reviews 的版本 v1 逐步遷移到版本 v3。 在下面的例子中,應用基於權重路由配置,將百分百路由在 reviews:v1 版本的流量,逐步全部遷移到 reviews:v3 版本 。在操作前,需確保在當前環境下已經部署好正常執行的bookinfo,並提供對外訪問地址。流量遷移的具體操作如下:

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

idou老師教你學Istio06: 如何用istio實現流量遷移

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

idou老師教你學Istio06: 如何用istio實現流量遷移

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

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

idou老師教你學Istio06: 如何用istio實現流量遷移
等待幾秒鐘確保新的規則生效,檢視yaml檔案,v1和v3的權重各為50%:

idou老師教你學Istio06: 如何用istio實現流量遷移

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

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

idou老師教你學Istio06: 如何用istio實現流量遷移

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

idou老師教你學Istio06: 如何用istio實現流量遷移

等待幾秒鐘確保新的規則生效,檢視yaml檔案,所有流量走向V3版本:

idou老師教你學Istio06: 如何用istio實現流量遷移
此時重新整理瀏覽器介面,只會看到紅色星級評價的頁面。

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

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

相關文章