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.mzph.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里可以关闭,也可以使用下面命令行的方式&…

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 核心…

django21:admin后台管理\media配置\图片防盗链\暴露后端资源\路由分发\时间分类

admin后台管理 创建超级用户 createsuperuser 1.到应用下的admin.py注册模型表 from django.contrib import admin from blog import models # Register your models here.admin.site.register(models.UserInfo) admin.site.register(models.Article) admin.site.register(m…