使用阿里云容器服务部署Bookinfo示例

Bookinfo应用介绍

Bookinfo是一个样例应用,用来演示多种 Istio 特性,它由四个单独的微服务构成:

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

reviews 微服务有 3 个版本:

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

下图展示了这个应用的端到端架构
使用阿里云容器服务部署Bookinfo示例

部署应用

部署istio 

登录容器服务控制台,左侧导航中选择服务网格-Istio管理,选择需要安装Istio的集群,使用默认配置点击部署Istio
使用阿里云容器服务部署Bookinfo示例

成功部署Istio后,可以看到下方Sidecar 自动注入设置。选择一个命名空间,开启Sidecar自动注入
使用阿里云容器服务部署Bookinfo示例

完成后可以看到istio-test命名空间下新增标签istio-injection:enabled
使用阿里云容器服务部署Bookinfo示例

部署相关服务

bookinfo使用的服务yaml文件地址 https://raw.githubusercontent.com/istio/istio/release-1.2/samples/bookinfo/platform/kube/bookinfo.yaml

这里我们使用控制台分别部署productpage,detail,rating及reviews服务的两个版本(v1,v2)

productpage服务

选择集群,命名空间
使用阿里云容器服务部署Bookinfo示例
输入镜像名称,版本,设置端口
使用阿里云容器服务部署Bookinfo示例
服务(service)相关配置

使用阿里云容器服务部署Bookinfo示例
使用阿里云容器服务部署Bookinfo示例
创建完成

参考上述步骤分别创建details,ratings,reviews(v1)三个服务。

创建完成后,等待所有的service和 pod 都已经正常启动。

创建服务网关

服务网关可以将Istio的功能(如:监控和路由规则)应用到进入集群的流量。在服务网格目录下选择服务网关,点击新建。

使用阿里云容器服务部署Bookinfo示例

使用阿里云容器服务部署Bookinfo示例
然后,可以将虚拟服务绑定到网关,以控制进入集群的流量。点击虚拟服务可以看到虚拟服务列表,
使用阿里云容器服务部署Bookinfo示例
点击productpage的服务网关绑定,可以看到如下弹窗,选择创建好的服务网关bookinfo-gateway,确定后完成绑定。
使用阿里云容器服务部署Bookinfo示例

进入服务网关列表,点击bookinfo-gateway中istio-ingressgateway服务地址,输入路由/productpage可以看到如下页面
使用阿里云容器服务部署Bookinfo示例

部署reviews-v2 版本

点击虚拟服务reviews,进入详情页,在版本管理栏点击增加灰度版本
使用阿里云容器服务部署Bookinfo示例
输入版本号进入下一步,输入镜像名称,版本,设置端口。
使用阿里云容器服务部署Bookinfo示例
下一步,设置灰度策略。这里选择基于流量比例的发布策略,v1,v2版本流量各50%。设置完成后点击创建。使用阿里云容器服务部署Bookinfo示例
待pod启动完成后,刷新url,会看到v2版本的UI(由于v1、v2流量比例各50%,可能要多刷新几次)
使用阿里云容器服务部署Bookinfo示例

最后,我们可以使用压测工具(如siege)模拟多次访问,再通过kiali观察流量拓扑。我们在安装istio的时候已经默认安装了kiali,只需要在路由中新建一个ingress就可以方便的进行访问。
左侧导航中选择路由与负载均衡->路由,选择安装好istio的集群,命名空间选择istio-system,点击创建并按如下填写相关内容
使用阿里云容器服务部署Bookinfo示例

创建完成后会在Ingress列表看到kiali的访问地址
使用阿里云容器服务部署Bookinfo示例

进入kiali界面(用户名密码默认为admin),可以看到流量拓扑如图。
使用阿里云容器服务部署Bookinfo示例

小结

本文介绍了使用阿里云容器服务部署运行bookinfo示例的过程。接下来我们还可以用它来体验Istio相关特性,包括智能路由,错误注入,流量控制等。

上一篇:【镜像更新】Windows Server 2008 R2 企业版


下一篇:英国Bytemark Hosting公司为Linux Deepin提供镜像支持