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

概要

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

本文使用一個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服務可以分別擴容和縮容,有助於微服務的獨立管理,不會影響版本之間的流量分發。而使用容器編排平臺的部署功能進行版本遷移,實際是使用了實例擴容來對流量進行管理,兩者原理並不相同。

歡迎關注微信公衆號【容器魔方】,如果您想加入容器交流技術羣,添加管理員monicka,申請入羣,容器圈的人看過來~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章