流量转移
一个常见的用例是将流量从微服务的一个版本的逐渐迁移到另一个版本。在 Istio 中,您可以通过配置一系列规则来实现此目标。这些规则将一定比例的流量路由到一个或另一个服务。在本任务中,您将会把 50% 的流量发送到 ,另外,50% 的流量发送到 reviews:v3
。接着,再把 100% 的流量发送到 reviews:v3
来完成迁移。
部署 Bookinfo 示例应用程序。
查看概念文档。
如果尚未应用目标规则,请按照应用默认目标规则中的说明进行操作。
首先,运行此命令将所有流量路由到各个微服务的
v1
版本。-
请注意,不管刷新多少次,页面的评论部分都不会显示评价星级的内容。这是因为 Istio 被配置为将星级评价的服务的所有流量都路由到了 版本,而该版本的服务不访问带评价星级的服务。
确认规则已被替换:
刷新浏览器中的
/productpage
页面,大约有 50% 的几率会看到页面中带 红色 星级的评价内容。这是因为reviews
的v3
版本可以访问带星级评价,但 版本不能。在目前的 Envoy Sidecar 实现中,您可能需要多次刷新
/productpage
页面,可能 15 次或更多次,才能看到正确的流量分发的效果。您可以通过修改规则将 90% 的流量路由到v3
版本,这样能看到更多带红色星级的评价。-
现在,当您刷新
/productpage
时,您将始终看到带有 红色 星级评分的书评。
在这项任务中,我们使用 Istio 的权重路由功能将 服务的流量迁移到新版本。请注意,这和使用容器编排平台的部署功能来进行版本迁移完全不同,后者使用了实例扩容来对流量进行管理。
使用 Istio,两个版本的 reviews
服务可以独立地进行扩容和缩容,而不会影响这两个服务版本之间的流量分发。
如果想了解支持自动伸缩的版本路由的更多信息,请查看。
删除应用程序路由规则。