分享交流
合作共赢!

Istio基础使用方法总结【五】——故障注入

这里我们继续测试istio的基本功能特性:

一、准备

1.首先,仍然回到我们下载istio的github仓库的位置

$ cd git/istio/

2.还原值最初的配置

即,配置virtualService全部对应为应用的v1版本

$ kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml

3.配置名为reviews的vs

当用户名为jason的用户登录时,将显示reviews的v2版本,其他用户仍然显示reviews的v1版本。

$ kubectl apply -f samples/bookinfo/networking/virtual-servivce-reviews-test-v2.yaml

此时访问bookinfo应用的流程如下:

  • productpage → reviews:v2 → ratings (针对 jason 用户)
  • productpage → reviews:v1 (其他用户)

二、注入HTTP延迟故障

为了测试微服务应用程序 Bookinfo 的弹性,我们将为用户 jason 在 reviews:v2 和 ratings 服务之间注入一个 7 秒的延迟。 这个测试将会发现一个故意引入 Bookinfo 应用程序中的 bug。

注意 reviews:v2 服务对 ratings 服务的调用具有 10 秒的硬编码连接超时。 因此,尽管引入了 7 秒的延迟,我们仍然期望端到端的流程是没有任何错误的

1.创建故障注入规则以延迟来自测试用户 jason 的流量:

$ kubectl apply -f samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml

2.确认规则已经创建

$ kubectl get virtualservice ratings -o yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
spec:
  hosts:
  - ratings
  http:
  - fault:
      delay:
        fixedDelay: 7s
        percentage:
          value: 100
    match:
    - headers:
        end-user:
          exact: jason
    route:
    - destination:
        host: ratings
        subset: v1
  - route:
    - destination:
        host: ratings
        subset: v1
3.测试延迟效果
  1. 通过浏览器打开 Bookinfo 应用。

  2. 使用用户 jason 登陆到 /productpage 页面。

    你期望 Bookinfo 主页在大约 7 秒钟加载完成并且没有错误。 但是,出现了一个问题:Reviews 部分显示了错误消息:

    Sorry, product reviews are currently unavailable for this book.

查看页面的响应时间:

  1. 打开浏览器的 开发工具 菜单
  2. 打开 网络 标签
  3. 重新加载 productpage 页面。你会看到页面加载实际上用了大约 6s

赞(0) 打赏
未经允许不得转载:琼杰笔记 » Istio基础使用方法总结【五】——故障注入
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

分享交流,合作共赢!

联系我们加入QQ群

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏