【kubernetes】Minikube-Istio流量切换Traffic Shifting

Minikube-Istio流量切换Traffic Shifting

Before you begin

参考【kubernetes】Minikube-Istio初探 搭建基础环境,并部署好官方示例Bookinfo

网站包括四个微服务:

productpage :本服务会调用 details 和 reviews 两个微服务,用来生成页面。
details :这个微服务包含了书籍的信息。
reviews :这个微服务包含了书籍相关的评论。它还会调用 ratings 微服务。
ratings :ratings 微服务中包含了由书籍评价组成的评级信息。

reviews 微服务有 3 个版本:

v1 版本不会调用 ratings 服务。
v2 版本会调用 ratings 服务,并使用 1 到 5 个黑色星形图标来显示评分信息。
v3 版本会调用 ratings 服务,并使用 1 到 5 个红色星形图标来显示评分信息。

这里的v1、v2、v3是通过label version: v1标注

Apply weight-based routing

1 运行一下命令使virtual services生效,切换所有流量只访问V1

1
$ kubectl apply -f https://gitee.com/melodyfff/istio/raw/master/samples/bookinfo/networking/virtual-service-all-v1.yaml

2 转发50%流量从reviews:v1reviews:v3:

1
2
3
4
$ kubectl apply -f https://gitee.com/melodyfff/istio/raw/master/samples/bookinfo/networking/virtual-service-reviews-50-v3.yaml

# 查看是否生效
$ kubectl get virtualservice reviews -o yaml

此时刷新/productpage页面会间歇看到红色评级星

  1. 转发100%流量到reviews:v3:
    1
    2
    3
    4
    $ kubectl apply -f https://gitee.com/melodyfff/istio/raw/master/samples/bookinfo/networking/virtual-service-reviews-v3.yaml

    # 查看是否生效
    $ kubectl get virtualservice reviews -o yaml
    此时刷新/productpage页面会看到红色评级星

CleanUp

1
$ kubectl delete -f https://gitee.com/melodyfff/istio/raw/master/samples/bookinfo/networking/virtual-service-all-v1.yaml

参考

Istio - Traffic Shifting

Istio - Bookinfo Application

Canary Deployments using Istio