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

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

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

Figure 1 bookinfo示意圖

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

轉載于:https://blog.51cto.com/14051317/2345441

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280549.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280549.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280549.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用最少的代碼,寫一個完整MES項目(.NET6+WPF)

工業4.0時代,智能智造MES系統大行其道,然而基于.NET跨平臺的罕見!這里有一套《.NET6WPF企業級MES實戰》教程,基于.NET6跨平臺開發,實現了MES多核心功能,尤其是開發框架完整,非常適合復用。這里分…

django18:auth模塊

Auth模塊 執行數據庫遷移命令后,自動生產多個表。 django_session auth_user 直接訪問admin路由,需要輸入用戶名和密碼,就是參考auth_user表 管理員用戶才能進入 創建超級用戶 createsuperuser from django.contrib import auth1.校驗用…

hulu dpp_什么是直播電視的Hulu,它可以代替您的有線電視訂閱嗎?

hulu dppStreaming cable replacements are becoming a much more appealing option for cable cutters across the board, with more choices available than ever before. Hulu’s Live TV option is a relative newcomer to the scene, but is it worth it? 對于全系列的電…

suse linux ssh遠程無法訪問問題

當正常安裝完Suse Linux Enterprise Server 11 sp1 時,無法通過SecureCRT或者PuTTY之類的終端程序進行連接。 折騰了一下,發現問題所在: 1、 需要關閉防火墻,如下圖在YAST里可以關閉,也可以使用下面命令行的方式&…

4.Linux的目錄結構

Linux的目錄結構 (1)"/"目錄 Linux文件系統的入口,也是出于最高一級的目錄 (2)"/bin" 基礎系統所需要的那些命令位于此目錄。也是最小系統所需要命令;比如ls、cp、mkdir等命令;功能和/usr/bin類似,這個目錄中…

Jade —— 源于 Node.js 的 HTML 模板引擎

2013-12-11 發布Jade —— 源于 Node.js 的 HTML 模板引擎 開源項目介紹 web 模板引擎 node.js jade 207.8k 次閱讀 讀完需要 69 分鐘54Jade 是一個高性能的模板引擎,它深受 Haml 影響,它是用 JavaScript 實現的,并且可以供 Node…

詐騙者如何偽造電子郵件地址,以及如何分辨

Consider this a public service announcement: Scammers can forge email addresses. Your email program may say a message is from a certain email address, but it may be from another address entirely. 考慮這是一項公共服務公告:詐騙者可以偽造電子郵件地…

如何對整個 WPF 應用程序進行灰度

如何對整個 WPF 應用程序進行灰度控件名:GrayscaleEffect作 者:WPFDevelopersOrg - 驚鏵原文鏈接[1]:https://github.com/WPFDevelopersOrg/WPFDevelopers 簡易源碼[2]框架使用.NET40;Visual Studio 2019;如果要實現灰度第一反是…

django19:項目開發流程

參考:https://www.bilibili.com/video/BV1QE41147hU?p831&spm_id_frompageDriver

React Native - FlexBox彈性盒模型

FlexBox布局 1. 什么是FlexBox布局? 彈性盒模型(The Flexible Box Module),又叫FlexBox,意為"彈性布局",旨在通過彈性的方式來對齊和分布容器中內容的空間,使其能適應不同屏幕,為盒模型提供最大的靈活性. ??Flex布局主要思想是: 讓容器有能力讓其子項目能夠改變其…

java虛擬機讀寫其他進程的數據

在java中,process類提供了如下3個方法,用于讓程序和其他子進程進行通信。 InputStream getErrorStream():獲取子進程的錯誤流。 InputStream getInputStream():獲取子進程的輸入流。…

release8_如何在Windows 8 Release Preview中將Chrome用作Metro瀏覽器

release8Windows 8 allows third-party browser to replace Internet Explorer in the Metro environment — except on Windows RT. You can use Google Chrome in Metro today, and Firefox for Metro is on the way. Windows 8允許第三方瀏覽器在Metro環境中替換Internet Ex…

html jQuery/bootstrap通過網絡bootcdn導入連接

網絡連接網址 https://www.bootcdn.cn/ <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"utf-8"><title>title</title><!-- Bootstrap --><link href"https://cdn.bootcdn.net/ajax/libs/twi…

Python深入類和對象

一. 鴨子類型和多態 1.什么是鴨子類型&#xff1a; 在程序設計中&#xff0c;鴨子類型&#xff08;英語&#xff1a;Duck typing&#xff09;是動態類型和某些靜態語言的一種對象推斷風格。"鴨子類型"像多態一樣工作&#xff0c;但是沒有繼承。“鴨子類型”的語言是這…

linux中/usr下文件權限修改setuid導致的問題

2019獨角獸企業重金招聘Python工程師標準>>> 在Ubuntu系統中因為一些原因我使用如下命令修改了/usr目錄的擁有者權限&#xff1a; chown -R root:root /usr結果直接導致系統無法正常啟動&#xff0c;通過跟蹤系統啟動日志/var/log/syslog找到如下失敗原因&#xff1…

[轉載]unix環境高級編程備忘:理解保存的設置用戶ID,設置用戶ID位,有效用戶ID,實際用戶ID...

轉載自http://www.cnblogs.com/stemon/p/5287631.html 一、基本概念 實際用戶ID(RUID)&#xff1a;用于標識一個系統中用戶是誰&#xff0c;一般是在登錄之后&#xff0c;就被唯一的確定&#xff0c;就是登錄的用戶的uid。 有效用戶ID(EUID)&#xff1a;用于系統決定用戶對系統…

django20:BBS網頁設計/注冊功能/驗證碼代碼

表設計 注冊功能 """ 1.注冊功能需要forms組件 不同功能&#xff0c;可單獨一個py文件2.利用forms組件渲染前端標簽1.利用ajax提交2.forms組件獲取用戶數據的數據。$(#form).serializeArray()獲取forms標簽所有用戶普通鍵值對的數據3. 手動渲染頭像label里面內…

用最少的代碼打造一個Mini版的gRPC框架

在《用最少的代碼模擬gRPC四種消息交換模式》中&#xff0c;我使用很簡單的代碼模擬了gRPC四種消息交換模式&#xff08;Unary、Client Streaming、Server Streaming和Duplex Streaming&#xff09;&#xff0c;現在我們更近一步&#xff0c;試著使用極簡的方式打造一個gRPC框架…

Windows 10的下一個更新將在您觀看視頻時隱藏通知

Windows 10’s Focus Assist feature temporarily hides incoming notifications. In Windows 10’s next update, Focus Assist can activate when you’re using any full-screen app, whether that’s YouTube in a browser, Netflix, or a desktop video player like VLC. …

Ubuntu安裝Samba文件共享服務器(NAS)

終于有點時間來解決下家中NAS需求了。一般自制NAS&#xff0c;只有選Samba。速度比FTP快&#xff0c;便利性比Windows文件夾共享好&#xff0c;設置多等等。 ?參考&#xff1a;samba簡介 安裝Samba $ sudo apt-get update $ sudo apt-get install samba samba-common-bin 核心…